我正在尝试使用生菜来编写一些简单的单元测试
(更具体地说,我正在学习本教程:https://semaphoreci.com/community/tutorials/bdd-testing-a-restful-web-application-in-python)
我刚安装了生菜:
$ pip3 install lettuce
当我跑
时$ lettuce test/features
我明白了:
Traceback (most recent call last):
File "/usr/local/bin/lettuce", line 9, in <module>
load_entry_point('lettuce==0.2.23', 'console_scripts', 'lettuce')()
File "/usr/local/lib/python3.4/site-packages/pkg_resources/__init__.py", line 542, in load_entry_point
return get_distribution(dist).load_entry_point(group, name)
File "/usr/local/lib/python3.4/site-packages/pkg_resources/__init__.py", line 2569, in load_entry_point
return ep.load()
File "/usr/local/lib/python3.4/site-packages/pkg_resources/__init__.py", line 2229, in load
return self.resolve()
File "/usr/local/lib/python3.4/site-packages/pkg_resources/__init__.py", line 2235, in resolve
module = __import__(self.module_name, fromlist=['__name__'], level=0)
File "/usr/local/lib/python3.4/site-packages/lettuce/__init__.py", line 179
print "Error loading step definitions:\n", e
^
SyntaxError: Missing parentheses in call to 'print'
生菜包装有错吗?我去纠正了一些事情(为一些打印语句添加了括号,然后由于同样的原因,其他一些打印失败)。 有什么想法吗?
答案 0 :(得分:6)
不幸的是,lettuce
与Python 3不兼容。
项目不会在 兼容的任何地方声明,但是他们的源代码使用的是Python 2特定语句,例如触发异常的print
语句。然而,问题不仅仅是print
。有issue open要求Python 3支持。
如果必须使用lettuce
,那么您需要使用Python 2.7。否则,似乎有一个名为aloe
的分支与nose
和Python 3一起使用。
答案 1 :(得分:0)