首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PyCharm运行选择单元测试

PyCharm运行选择单元测试
EN

Stack Overflow用户
提问于 2016-04-25 17:35:22
回答 2查看 1.8K关注 0票数 4

我有一个python包,其中我所有的单元测试类都存储在子包mypkg.tests中的模块中。在tests/__init__.py文件中,我有一个名为suite的函数。我通常通过调用具有python setup.py testtest_suite='satpy.tests.suite'来运行这些测试。是否有可能从pycharm运行这个测试套件?

我之所以拥有套件函数,是因为它只包含可以从我的持续集成中运行的测试,但是目录中还存在其他失败的测试(来自包的旧版本)。我还可以看到,这对于选择快速单元测试和长时间运行测试非常有用。我尝试过作为脚本运行,作为nosetest或unittest配置。我尝试过添加if __name__ == "__main__":和其他类型的命令行运行方法,但没有成功。

是否有一种方法只运行一些来自pycharm运行配置的测试?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-04-25 19:38:11

Pycharm的“Python”配置在后台使用unittest.TestLoader加载测试。现在Pycharm实际上尝试自动收集测试用例,但不知道如何处理TestSuite实例,返回此类实例的函数甚至更少。

解决问题的方法是将load_tests函数添加到tests/__init__.py文件中,如下所示:

代码语言:javascript
复制
def load_tests(loader, tests, pattern):
    return suite()

然后在py魅力配置项中,选择'Script‘并给出tests/__init__.py

load_tests函数实际上告诉测试加载器哪些测试在模块中可用:)

在这里可以看到更多关于这个巧妙技巧的信息:https://docs.python.org/2.7/library/unittest.html#load-tests-protocol

不过,请注意,它只适用于python2.7及更高版本。

票数 0
EN

Stack Overflow用户

发布于 2019-12-02 19:52:53

有一件事我发现,在特殊情况下,我的Test类来自在本地模块中定义的unittest.TestCase子类。pycharm中有一个已知的bug已经存在多年了,有时它无法完全看到您的虚拟环境中的本地模块,比如将导入标记为未知。有一个解决方案,就是为该本地项目添加鸡蛋,或者将其源路径添加到使用它的项目中作为源。

当我为另一个bug做了那个解决方案时,问题就消失了。因此,由于另一个问题,pycharm机器似乎没有将我的Test类识别为unittest.TestCase。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36847349

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档