相关疑难解决方法(0)

有没有办法指定从文件运行哪些pytest测试?

有没有办法选择pytest测试从文件运行?例如,包含要执行的测试列表的文件foo.txt:

tests_directory/foo.py::test_001
tests_directory/bar.py::test_some_other_test
Run Code Online (Sandbox Code Playgroud)

或者有没有办法从pytest的不同目录中选择多个测试,测试名称中没有共同的模式?

py.test -k <pattern> 允许单一模式.

一种选择是针对每个测试使用pytest.mark,但我的要求是运行来自不同文件的不同测试组合.

有没有办法为每个模式指定多个模式和测试文件名?或者有没有办法在文件中指定确切的测试路径并将该文件作为pytest的输入提供?或者是否有可用于此目的的钩子功能?

python pytest

133
推荐指数
9
解决办法
8万
查看次数

pytest中的测试用例执行顺序

我正在使用pytest.我在目录中有两个文件.在其中一个文件中有一个长时间运行的测试用例,它会生成一些输出.在另一个文件中有一个读取该输出的测试用例.如何确保两个测试用例的正确执行顺序?除了以正确的顺序将测试用例放在同一个文件中之外,还有其他选择吗?

python pytest

32
推荐指数
6
解决办法
2万
查看次数

如何在所有类中的所有测试之前运行方法?

我正在编写selenium测试,包含一组类,每个类包含几个测试.每个类当前打开然后关闭Firefox,这有两个结果:

  • 超级慢,打开firefox需要比在课堂上运行测试更长的时间...
  • 崩溃,因为在Firefox关闭后,尝试从硒中快速重新打开它会导致"错误54"

我可以通过添加睡眠来解决错误54,但它仍然会超级慢.

所以,我想要做的是在所有测试类中重用相同的Firefox实例.这意味着我需要在所有测试类之前运行一个方法,在所有测试类之后运行另一个方法.因此,'setup_class'和'teardown_class'是不够的.

python selenium pytest

32
推荐指数
4
解决办法
2万
查看次数

pytest 类中测试的执行顺序

我按以下方式编写测试用例。

# content of test_class.py
class TestClass(object):
    def test_one(self):
        x = "this"
        assert 'h' in x

    def test_two(self):
        x = "hello"
        assert hasattr(x, 'check')
Run Code Online (Sandbox Code Playgroud)

test_two 依赖于 test_one,因此执行的顺序很重要,当您将测试分组到类中时,强制执行测试执行顺序的约定是什么?

pytest

8
推荐指数
1
解决办法
6271
查看次数

Pytest - 测试用例执行顺序

我有一些带有测试的脚本,我需要按照我明确定义的执行顺序运行这些测试。

看起来像:

# one.py
import some lib

class Foo():
    def makesmth(self)
        script
Run Code Online (Sandbox Code Playgroud)

然后我制作了测试文件:

# test_one.py
import pytest
import some lib

class TestFoo():
    def test_makesmth(self):
        try/except/else assert etc.
Run Code Online (Sandbox Code Playgroud)

所以它看起来简单而正确。当我运行文件 test_one.py 时一切正常。我的脚本测试包看起来像:

package/
|-- __init__.py
|-- scripts
|   |-- one.py
|   |-- two.py
|-- tests
|   |-- test_one.py
|   |-- test_two.py
Run Code Online (Sandbox Code Playgroud)

当我尝试收集测试时

pytest --collect-only
Run Code Online (Sandbox Code Playgroud)

它给出了非字母顺序和随机的测试顺序。

我可以在哪里写有关测试顺序的信息?非字母,就像我想像 b、a、c、e、d 一样开始测试 - 不是随机的,不是按字母顺序的

试图制作文件tests.py:

import pytest

from tests.test_one import TestFoo
from tests.test_two import TestBoo etc.
Run Code Online (Sandbox Code Playgroud)

当我试图运行它,显示错误,因为这些进口是在我不明白的方式进行(试图使一个命名为testFoo b TestBoo并重新命名该方法定义的方式测试文件,但仍然是没有按”工作)。

对不起,如果我的问题看起来不专业,我是初级问答,几乎没有自动测试经验。

qa pytest python-3.x

5
推荐指数
1
解决办法
3921
查看次数

标签 统计

pytest ×5

python ×3

python-3.x ×1

qa ×1

selenium ×1