Pytest - порядок выполнения тест-кейсов - PullRequest
0 голосов
/ 21 декабря 2018

У меня есть несколько сценариев с тестами для них, и мне нужно запустить эти тесты в порядке выполнения, явно заданном мной .

Это выглядит так:

# one.py
import some lib

class Foo():
    def makesmth(self)
        script

, тогда я сделал тестовые файлы:

# test_one.py
import pytest
import some lib

class TestFoo():
    def test_makesmth(self):
        try/except/else assert etc.

Так что это выглядит просто и правильно.Когда я запускаю файл test_one.py, все в порядке.Пакет моего скриптового тестирования выглядит так:

package/
|-- __init__.py
|-- scripts
|   |-- one.py
|   |-- two.py
|-- tests
|   |-- test_one.py
|   |-- test_two.py

Когда я пытаюсь собрать тест с помощью

pytest --collect-only

, он дает не алфавитный и просто случайный порядок тестов.

Где я могу написать информацию о порядке испытаний?Не алфавитный, как я хочу, чтобы начать тестирование как b, a, c, e, d - и не случайно, а не алфавитный

Пытался сделать файл tests.py:

import pytest

from tests.test_one import TestFoo
from tests.test_two import TestBoo etc.

И когда я пытаюсь запустить это, появляются ошибки, потому что этот импорт был выполнен так, как я не понимаю (пытался сделать a TestFoo b TestBoo, ​​а также переименоватьтестируйте файлы таким способом определения метода, но все равно он не работает).

Извините, если мой вопрос выглядит как что-то непрофессиональное, я младший специалист по вопросам и ответам, почти не имеющий опыта в автотестировании.

1 Ответ

0 голосов
/ 24 декабря 2018

Вы можете использовать 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
...