py.test使用-m AS作为命令中的目录路径

时间:2016-02-22 18:41:58

标签: python django bash pytest

我只想在我的测试套件中运行selenium测试,除了将其过滤到仅在特定文件/文件夹中运行测试。似乎我应该能够使用-m选项和路径位置参数来完成此操作。此外,我在bash脚本中执行此操作。

例如,我尝试过这样的事情:

#!/bin/bash
# ...some logic here for determining `EXTRA` arg
EXTRA = "not selenium"
py.test -m $EXTRA -v -s --tb=long --no-flaky-report ~/project/mytests/test_blerg.py

然后我的测试看起来像这样(仍然使用xunit风格的类):

@pytest.mark.selenium
class BaseTest(UnitTest):
    pass

class ChildTest(BaseTest):

    def test_first_case(self):
        pass

当我按照上面描述的那样运行py.test命令时,我得到了这个:

============================================================================ no tests ran in 0.01 seconds ============================================================================
ERROR: file not found: selenium"

不完全确定为什么这不起作用。我会尝试手动覆盖pytest_runtest_setup(),但我觉得如果不这样做,我应该能够完成我想要的任务。另外,仅供参考,这个 django项目,使用Django==1.8.7pytest-django==2.9.1

非常感谢任何帮助:)

1 个答案:

答案 0 :(得分:0)

想出来。这与py.test本身无关。我在bash脚本中调用py.test命令时遇到错误。修改后的命令如下所示:

py.test -m "$EXTRA" -v -s --tb=long --no-flaky-report ~/project/mytests/test_blerg.py

按预期工作!

相关问题