我之前(Force nose2 to use Python 2.7 instead of Python 3.5)曾问过这个问题,但没有得到答案,我想我可能会再试一次。我试图使用命令
运行测试nose2
但我收到的错误以
结尾SyntaxError: Missing parentheses in call to 'print'
似乎nose2假设代码在Python 3中,而在这种情况下它在Python 2中。有没有办法使nose2
能够处理Python 2代码? (例如,通过更改其配置)?
答案 0 :(得分:3)
nose2接受shebang行中配置的任何python。
要测试python2项目的使用(您的计算机上的可执行文件和路径可能不同):
python2.7 /usr/local/bin/nose2
通过此示例验证:
<强> test.py 强>:
def test_the_program():
print "foo"
使用python3 :
$ python3 /usr/local/bin/nose2
======================================================================
ERROR: test (nose2.loader.ModuleImportFailure)
----------------------------------------------------------------------
ImportError: Failed to import test module: test
(...)
print "hans"
^
SyntaxError: Missing parentheses in call to 'print'
----------------------------------------------------------------------
Ran 1 test in 0.000s
FAILED (errors=1)
使用python2.7 :
$ python2.7 /usr/local/bin/nose2
foo
.
----------------------------------------------------------------------
Ran 1 test in 0.000s
OK