3

我正在使用Behave (BDD for Python) 并且一直在尝试启用 JUnit 输出但没有成功。故障排除后,我意识到只有在使用Python 3.4时才会收到以下错误消息:

/Library/Frameworks/Python.framework/Versions/3.4/bin/python3.4 "/Users/myusername/Documents/Programming/Selenium Programming/GMail Project/GMailTests.py"
Traceback (most recent call last):
  File "/Users/myusername/Documents/Programming/Selenium Programming/GMail Project/GMailTests.py", line 62, in <module>
    config = Configuration()
  File "/Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/site-packages/behave/configuration.py", line 481, in __init__
    load_configuration(self.defaults, verbose=verbose)
  File "/Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/site-packages/behave/configuration.py", line 394, in load_configuration
    defaults.update(read_configuration(filename))
  File "/Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/site-packages/behave/configuration.py", line 348, in read_configuration
    result[dest] = cfg.get('behave', dest, use_raw_value)
TypeError: get() takes 3 positional arguments but 4 were given

当我将项目更新为使用 Python 2.7 时,一切正常。

这是一个重要的注意事项:这只会在我在behave.ini配置文件中启用 JUnit 输出时造成问题。如果我从配置中取出下面的两行,一切都会好起来的。不幸的是,我需要为我的项目启用 JUnit 输出:

[behave]
junit=true
junit_directory=./JunitReports

如果您知道我可以使用 Python 3.4 进行这项工作的任何方法,我很想知道。提前致谢。

4

3 回答 3

1

将脚本中的第一行更改/usr/local/bin/behave 为: #!/usr/local/bin/python3#you might want to run which python3

解决了这个问题

于 2014-11-18T16:27:49.260 回答
0

看起来我在上一条评论中回答了我自己的问题。我只是想关闭线程并提供截至 2014 年 8 月 13 日的官方答案:behaveis not fully supported on Python3.4,即使在使用 安装时大部分都可以正常工作pip3 install behave,但JUnit输出选项不起作用。

有一个已知问题已在此处记录。

于 2014-08-13T16:46:42.237 回答
0

使用行为 1.2.5。此版本中修复了许多与 Python3/Unicode 相关的问题。测试在带有 Python 3.4 的 CI 服务器上运行得很好。

于 2015-02-20T22:47:55.523 回答