我编写了一个包(http://github.com/anntzer/parsedcmd),它可以同时运行 Python2 和 Python3。但是,我不得不为 Python2 和 Python3 编写单独的 (py.test) 单元测试(主要是因为我想测试 Python3 的额外功能,特别是仅关键字参数),所以我在子包中有 atest_py2.py
和 a 。现在,如果我运行,比如说,通过,但失败了。同样,对于,通过但失败(尽管我可以使这个工作,这只是移至的问题)。test_py3.py
test
py.test2 mypkg
test_py2
test_py3
SyntaxError
py.test3 mypkg
test_py3
test_py2
StringIO
io
我可以设计test
子包,以便import mypkg.test
只导入正确版本的测试,但显然 py.test 并不关心——它只看到两个匹配的文件test_*
并抓取它们中的所有测试,而忽略__init__.py
告诉他导入的内容。
所以现在我必须同时做py.test2 mypkg/test/test_py2.py
和py.test3 mypkg/test/test_py3.py
。有没有办法设置整个事情,以便py.test2 mypkg
“py.test3 mypkg
正常工作”?
谢谢。