我在PyCharm内部运行pytest测试时遇到了问题
我在C:\Temp中的agents_automation_2文件夹中有一个文件x_tests. py,该文件的内容是
import pytest
def test_mytest():
assert False
当我运行时,我得到以下输出
- C:\Python36 - 32\python.exe "C:\Program Files\JetBrains\PyCharm 2017.3.2\helpers\pycharm_jb_pytest_runner.py"--path C:/Temp/agents_automation_2在C:\Temp\agents_automation_2中使用参数C:/Temp/agents_automation_2启动py. test ====================================================================================================================================C:\Temp\agents_automation_2,初始化文件:plugins:xdist-1.22.0,forked-0.2收集了0项======================= 0.01秒内未运行任何测试=========================*
但是,当我从文件夹内的常规Windows命令行运行时,测试运行正常
你知道是什么问题吗?
谢谢!!!
7条答案
按热度按时间jm2pwxwz1#
测试文件的名称不符合默认的pytest发现规则。如果将 x_tests.py 更改为 x_test.py,则会运行测试并按预期失败。有关pytest发现规则的更多信息,请查看this page。
pxy2qtax2#
在我的例子中,测试类包含init方法,也会导致空套件。你需要做的是避免编写init方法。
ecbunoof3#
确保PyCharm配置为使用PyTest。默认情况下,它使用unittests。查看此文档:https://www.jetbrains.com/help/pycharm/choosing-your-testing-framework.html。一旦您正确配置了PyCharm以使用PyTest,例如,当您打开测试文件的上下文菜单时,您将看到类似于**Run 'PyTest in ... '**的内容
7rfyedvj4#
1.确保您的conftest.py文件位于同一文件夹中。
1.如果你使用的是fixture。在类名中添加“Test”关键字(example = TestClass)
svmlkihl5#
在我的例子中,我只需要从项目中删除
pytest.ini
文件。c9qzyr3d6#
对于那些使用WSL的人,问题可能与WSL无法访问有关。如果您在WSL上遇到此错误,
Logon failure: the user has not been granted the requested logon type at this computer.
尝试在PowerShell中重新启动
vmcompute
服务(以管理员身份运行):来源:https://github.com/microsoft/WSL/issues/5401
ldxq2e6h7#
在我的例子中,我只在启动时用test更改了类名,这就解决了我的问题。