all*_*lla 5 qa pytest python-3.x
我有一些带有测试的脚本,我需要按照我明确定义的执行顺序运行这些测试。
看起来像:
# 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并重新命名该方法定义的方式测试文件,但仍然是没有按”工作)。
对不起,如果我的问题看起来不专业,我是初级问答,几乎没有自动测试经验。
小智 2
您可以使用 pytest 排序
请参阅https://pytest-ordering.readthedocs.io/en/develop/
import pytest
@pytest.mark.run(order=1)
def test_first():
pass
@pytest.mark.run(order=2)
def test_second():
pass
test_sample.py::test_first PASSED
test_sample.py::test_second PASSED
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
3921 次 |
最近记录: |