在PyCharm中运行Python包单元测试

mal*_*cot 6 pycharm python-unittest

我刚刚"移植"了一个我正在写给PyCharm的Python包,并且在从IDE运行整个包的单元测试时遇到了一些麻烦.

在__init__.py包中,我的load_tests功能遍及包中的所有模块并加载相关的测试.它运行得非常出色:

$python -m unittest my_package
Run Code Online (Sandbox Code Playgroud)

但是,当我尝试从PyCharm运行它时(通过选择Projects窗口中的顶级目录并按Ctrl + Shift + F10),我进入No tests were foundRun窗口,

...\python.exe ...\pycharm\utrunner.py .../my_package/ true
Testing started at ...
Process finished with exit code 0
Empty test suite.
Run Code Online (Sandbox Code Playgroud)

在控制台窗口中.

我快速浏览了PyCharm utrunner.py,它似乎正在寻找具有某种模式的模块(从测试开始).我想保留目前的香草方法.如何配置PyCharm使用load_tests从__init__.py在修改尽可能少的代码?

顺便说一句,各个模块的测试套件从PyCharm运行得很好.

使用PyCharm 3.1 Community Edition,Python 2.7.

先感谢您.

thi*_*elf 5

这个答案是考虑到PyCharm 3.4而写的.

有同样的问题,在这个答案中找到问题的解决方案,希望我理解你的问题:

/sf/answers/856941501/

我配置了我的Python Test runner配置,如下所示:

  • 选中'全部在文件夹'
  • 模式是正则表达式'.*_ Test.py'(不含引号)
  • 选中'仅检查unittest.TestCase的子类'.

现在它在名为like的子文件夹中找到了我的unitests classToBeTested_Test.py

顺便说一下,我现在面临另一个问题:单元测试无法导入要测试的模块.我认为不同的根文件夹的原因.

  • 只是为那些可能不了解正则表达式的人完成,单个开始(*)不会递归搜索,使用两颗星.例如:`**_ test.py` (2认同)