2016-09-21 5 views
0

I(requests.Session()を使用しており、私たちのバックエンドへの複数の呼び出しを行います。)APIでいくつかの流れをテストするテストケースを持ってこのunicodeオブジェクトを引き起こす原因は、nosetests libの呼び出し可能なエラーではありませんか?

このテストケースは、私のMac上や他の人々のMac上で渡します。しかし、それがジェンキンスで実行されたとき、私はエラーを受けます。 Jenkinsで問題なく通過するこのような他の同様のテストケースがあります。残念ながら、私はテストコード自体を共有することはできません。

ジェンキンスさんは、Ubuntuの14.04で

を実行している。しかし、ここで、それは場合に役立ちますテストコードの最初の行があります。

# filename: test_payment_visa.py 

import unittest 
from tests.utils import WWHTTPClient 
import math 
from nose.plugins.attrib import attr 


class TestPaymentWorkflow(unittest.TestCase): 
    def setUp(self): 
     self.ww_api = WWHTTPClient() 

    def test_payment_visa(self): 
     """Test for Payment Workflow via VISA""" 

これは何が関係しているのでしょうか?

Traceback (most recent call last): 
    File "/var/lib/jenkins/.virtualenvs/api-tests/bin/nosetests", line 11, in <module> 
    sys.exit(run_exit()) 
    File "/var/lib/jenkins/.virtualenvs/api-tests/local/lib/python2.7/site-packages/nose/core.py", line 121, in __init__ 
    **extra_args) 
    File "/usr/lib/python2.7/unittest/main.py", line 95, in __init__ 
    self.runTests() 
    File "/var/lib/jenkins/.virtualenvs/api-tests/local/lib/python2.7/site-packages/nose/core.py", line 207, in runTests 
    result = self.testRunner.run(self.test) 
    File "/var/lib/jenkins/.virtualenvs/api-tests/local/lib/python2.7/site-packages/nose/core.py", line 62, in run 
    test(result) 
    File "/var/lib/jenkins/.virtualenvs/api-tests/local/lib/python2.7/site-packages/nose/suite.py", line 177, in __call__ 
    return self.run(*arg, **kw) 
    File "/var/lib/jenkins/.virtualenvs/api-tests/local/lib/python2.7/site-packages/nose/suite.py", line 224, in run 
    test(orig) 
    File "/usr/lib/python2.7/unittest/suite.py", line 70, in __call__ 
    return self.run(*args, **kwds) 
    File "/var/lib/jenkins/.virtualenvs/api-tests/local/lib/python2.7/site-packages/nose/suite.py", line 75, in run 
    test(result) 
    File "/var/lib/jenkins/.virtualenvs/api-tests/local/lib/python2.7/site-packages/nose/suite.py", line 177, in __call__ 
    return self.run(*arg, **kw) 
    File "/var/lib/jenkins/.virtualenvs/api-tests/local/lib/python2.7/site-packages/nose/suite.py", line 224, in run 
    test(orig) 
    File "/var/lib/jenkins/.virtualenvs/api-tests/local/lib/python2.7/site-packages/nose/suite.py", line 177, in __call__ 
    return self.run(*arg, **kw) 
    File "/var/lib/jenkins/.virtualenvs/api-tests/local/lib/python2.7/site-packages/nose/suite.py", line 224, in run 
    test(orig) 
    File "/var/lib/jenkins/.virtualenvs/api-tests/local/lib/python2.7/site-packages/nose/suite.py", line 177, in __call__ 
    return self.run(*arg, **kw) 
    File "/var/lib/jenkins/.virtualenvs/api-tests/local/lib/python2.7/site-packages/nose/suite.py", line 224, in run 
    test(orig) 
    File "/var/lib/jenkins/.virtualenvs/api-tests/local/lib/python2.7/site-packages/nose/case.py", line 45, in __call__ 
    return self.run(*arg, **kwarg) 
    File "/var/lib/jenkins/.virtualenvs/api-tests/local/lib/python2.7/site-packages/nose/case.py", line 138, in run 
    result.addError(self, err) 
    File "/var/lib/jenkins/.virtualenvs/api-tests/local/lib/python2.7/site-packages/nose/proxy.py", line 131, in addError 
    plugins.addError(self.test, err) 
    File "/var/lib/jenkins/.virtualenvs/api-tests/local/lib/python2.7/site-packages/nose/plugins/manager.py", line 99, in __call__ 
    return self.call(*arg, **kw) 
    File "/var/lib/jenkins/.virtualenvs/api-tests/local/lib/python2.7/site-packages/nose/plugins/manager.py", line 167, in simple 
    result = meth(*arg, **kw) 
    File "/var/lib/jenkins/.virtualenvs/api-tests/local/lib/python2.7/site-packages/nose/plugins/xunit.py", line 288, in addError 
    id = test.id() 
    File "/var/lib/jenkins/.virtualenvs/api-tests/local/lib/python2.7/site-packages/nose/case.py", line 85, in id 
    return self.test.id() 
TypeError: 'unicode' object is not callable 
+0

あなたは答えに十分なコンテキストを提供していません。しかし、エラーメッセージは基本的には、どこかで文字列をメソッドまたは関数であるかのように扱っているということです。 –

+0

私はこの問題は私が書いたコードにはないと思いました。エラーは、テストケースの説明を取得しようとしているメソッドの/site-packages/nose/case.py行85にあります。このエラーはローカルマシンには表示されません。 – raitisd

答えて

0

私のコードに問題がありました。

は私が self.id = r.json()["orders"][0]["id"]

# filename: test_payment_visa.py 

import unittest 
from tests.utils import WWHTTPClient 
import math 
from nose.plugins.attrib import attr 


class TestPaymentWorkflow(unittest.TestCase): 
    def setUp(self): 
     self.ww_api = WWHTTPClient() 

    def test_payment_visa(self): 
     """Test for Payment Workflow via VISA"""  
     ... 
     ... 
     self.id = r.json()["orders"][0]["id"] 
     ... 
     ... 

問題がunittest.TestCase CLASはidというメソッドを持っていることである文を使用していました。

def id(self): 
    """Get a short(er) description of the test 
    """ 
    return self.test.id() 

だから私はそのidメソッドを呼び出すようにしようとしているとTypeError: 'unicode' object is not callable例外を取得しているテストの実行中に、私はUnicode文字列にself.idを設定することを想定して、nosetests

関連する問題