我为我编写的包编写了pytest单元测试,其结构如下:
现在packagedir/mypackage/test/conftest.py建立两个必需的命令行参数,这些参数将被创建为测试的fixture。当我运行类似于:
pytest packagedir/mypackage/ --var1 foo --var2 bar
所有测试都会运行,命令行参数都会正确读入。但是,当我pip安装包(它正确地安装了test和unit_tests包),然后尝试如下操作:
^{pr2}$我得到这样一个错误:
usage: pytest [options] [file_or_dir] [file_or_dir] [...]
pytest: error: unrecognized arguments: --var1 foo --var2 bar
如果我跑:
pytest --pyargs mypackage
测试运行但失败,因为命令行参数不存在。在
有人能给我解释一下这里可能出了什么问题吗?我可以猜测并说这是因为--pyargs参数改变了pytest命令行参数的解释,但这只是猜测。我想知道是否有一个真正的方法可以解决这个问题。在
总体目标是允许某人pip安装mypackage,然后能够轻松地测试它,而无需导航到安装的站点包位置。
我添加了一个
__main__.py
到mypackage/test
目录并写了现在,我可以用
^{pr2}$这在安装包时起作用。在
您可以使用travis内部版本查看此操作:
相关问题 更多 >
编程相关推荐