python – 如何在目录中的所有测试上运行twisted试用版?
作者:互联网
如何运行试验以便它执行目录中的所有测试?如果我单独对每个文件运行试验,我的所有单元测试都会通过,但是如果我尝试类似…
trial test/
在测试目录上,它给了我一个“PASSED”,以及以下消息……
UserWarning: (for module __init__) not in path importer cache (PEP 302 violation
- check your local configuration).
而不是实际运行目录中的所有测试.
解决方法:
首先:你不能打电话给你的顶级单元测试包测试.这是Python的单元测试的名称,因此您永远无法在已安装的配置中运行测试,并且根据您的python的设置方式,您可能最终导入python自己的测试而不是您自己的测试.
第二:sys.path是一个巨大而微妙的谜团.
试用版支持在文件和目录上运行,作为一个快速入门的黑客攻击,但它在使用路径名时永远不会完全正确.正确的做法是传递一个模块(或包)名称,它可以作为python模块导入并检查.
因此,如果您的目录结构如下所示:
~/Projects/MyProject/
~/Projects/MyProject/myproject/
~/Projects/MyProject/myproject/__init__.py
~/Projects/MyProject/myproject/stuff.py
~/Projects/MyProject/myproject/test/
~/Projects/MyProject/myproject/test/__init__.py
~/Projects/MyProject/myproject/test/test_stuff.py
然后你应该像这样运行你的测试:
PYTHONPATH=$HOME/Projects/MyProject (cd /tmp; trial myproject.test)
换句话说,不要在项目目录中运行测试;这会在你的源代码中转储_trial_temp目录,混淆“我加载代码的地方”和“当前目录”,并且通常会混淆各种事情,以后很难解开.
因此,使用您选择的路径管理工具设置您的PYTHONPATH和PATH:Combinator,setup.py develop,virtualenv – 或者只是将垃圾转储到您的〜/ .bashrc中 – 然后从一个临时位置运行试验,位于一个唯一命名的顶部-level Python包,一切都应该工作得很好.
标签:python,twisted,trial 来源: https://codeday.me/bug/20190902/1794298.html