我之前问过这个问题(Forcenose2 使用 Python 2.7 而不是 Python 3.5)但没有得到答案,我想我可以再试一次。我正在尝试使用命令运行测试
nose2
但我收到一个以
SyntaxError: Missing parentheses in call to 'print'
似乎nose2假设代码在Python 3 中,而在这种情况下它在Python 2 中。有没有办法nose2
在Python 2 代码上工作?(例如通过更改其配置)?
我之前问过这个问题(Forcenose2 使用 Python 2.7 而不是 Python 3.5)但没有得到答案,我想我可以再试一次。我正在尝试使用命令运行测试
nose2
但我收到一个以
SyntaxError: Missing parentheses in call to 'print'
似乎nose2假设代码在Python 3 中,而在这种情况下它在Python 2 中。有没有办法nose2
在Python 2 代码上工作?(例如通过更改其配置)?
nose2 采用 shebang 行中配置的任何 python。
要测试 python2 项目的使用(可执行文件和路径可能在您的机器上有所不同):
python2.7 /usr/local/bin/nose2
用这个例子验证:
测试.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