Behave(BDD)是否适用于Python 3.4?

时间:2014-08-11 03:49:57

标签: python-2.7 junit bdd python-3.4 python-behave

我正在使用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做任何工作,我很想知道它。提前谢谢。

3 个答案:

答案 0 :(得分:1)

改变第一行 脚本:/usr/local/bin/behave to:#!/usr/local/bin/python3#你可能想要运行哪个python3

解决了问题

答案 1 :(得分:0)

看起来我在上次评论中回答了我自己的问题。我只想关闭帖子并提供截至2014年8月13日的正式答案:behave Python完全支持3.4 {/ 1}} ,即使使用pip3 install behave安装大部分工作正常,JUnit输出选项也不起作用。

有一个已知问题已记录在案here

答案 2 :(得分:0)

使用behave-1.2.5。 此版本中修复了许多与Python3 / Unicode相关的问题。测试在CI server with Python 3.4上运行得很好。