我正在尝试使用 pytest-repeat 多次运行 pytest 方法,但我收到警告并且它只运行一次
from page.to_run_login import RegisterLogin
from utilites.testStatus import TestStatus
import unittest
import pytest
@pytest.mark.usefixture("oneTimeSetUp","setUp")
class RegisterTest(unittest.TestCase):
@pytest.fixture(autouse=True)
def classSetup(self,oneTimeSetUp):
self.rg = RegisterLogin(self.driver)
self.ts = TestStatus(self.driver)
@pytest.mark.run(order=1)
def test_registerLink(self):
self.rg.register()
self.rg.select_state_name()
self.rg.select_city_name()
self.rg.select_ready_wait()
self.rg.select_ready_pay()
self.rg.select_submit()
在终端中,我正在使用此命令执行 py.test -s -v test/to_test_login.py --count 2
截至 2020 年 10 月 31 日,有更好的方法可以做到这一点。请参阅https://pypi.org/project/pytest-repeat/
只需
pip install pytest-repeat
并使用 --count
。示例:pytest --count=10 test_file.py
如果您将
pytest
与继承 unittest.TestCase
的测试一起使用,则有一种简单的方法可以通过使用 parameterized Python 库来重复它:
from unittest import TestCase
from parameterized import parameterized
class RepeatTests(TestCase):
@parameterized.expand([[]] * 5)
def test_repeat_this_test_with_parameterized(self):
print("Hello!")
self.assertTrue(True)
输出:
Hello!
Hello!
Hello!
Hello!
Hello!
@pytest.mark.run(order=1)
def test_registerLink(self):
for i in range(100):
self.rg.register()
self.rg.select_state_name()
self.rg.select_city_name()
self.rg.select_ready_wait()
self.rg.select_ready_pay()
self.rg.select_submit()
self.rg.driver.back()
self.rg.driver.refresh()
我能够通过这样做解决它