我正在试图找出如何python setup.py test运行等效的python -m unittest discover.我不想使用run_tests.py脚本,我不想使用任何外部测试工具(如nose或py.test).如果解决方案仅适用于python 2.7,那就没问题.
在setup.py,我想我需要在配置中的test_suite和/或test_loader字段中添加一些东西,但我似乎无法找到一个正常工作的组合:
config = {
'name': name,
'version': version,
'url': url,
'test_suite': '???',
'test_loader': '???',
}
Run Code Online (Sandbox Code Playgroud)
这可能只使用unittest内置于python 2.7?
仅供参考,我的项目结构如下:
project/
package/
__init__.py
module.py
tests/
__init__.py
test_module.py
run_tests.py <- I want to delete this
setup.py
Run Code Online (Sandbox Code Playgroud)
更新:这是可能的,unittest2但我想找到相同的东西只使用unittest
来自https://pypi.python.org/pypi/unittest2
unittest2包括一个非常基本的setuptools兼容的测试收集器.在setup.py中指定test_suite ='unittest2.collector'.这将使用包含setup.py的目录中的默认参数启动测试发现,因此它可能是最有用的示例(请参阅unittest2/collector.py).
现在,我只是使用一个名为的脚本run_tests.py,但我希望通过转向仅使用的解决方案来摆脱这个问题python setup.py test.
这是run_tests.py我希望删除的:
import unittest
if __name__ == …Run Code Online (Sandbox Code Playgroud) 我制作了我的项目,setuptools我想用它进行测试tox.我在变量中列出了依赖项并添加到setup()参数(tests_require和extras_require)中.我的项目需要安装tests_require测试中列出的所有依赖项,但pip install不安装它们.
我尝试了这个,但它不起作用:
install_command = pip install {opts} {packages}[tests]
Run Code Online (Sandbox Code Playgroud)
如何安装测试依赖项而无需管理多个依赖项列表(即在两者test_requirements.txt和tests_require变量中列出所有依赖项)?
python ×2
easy-install ×1
nose ×1
pip ×1
pytest ×1
setuptools ×1
tox ×1
unit-testing ×1
unittest2 ×1