如何多次 运行 一个 pytest 方法?
How to run a pytest method multiple times?
我正在尝试使用 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
@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()
我通过这样做解决了这个问题
截至 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-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
@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()
我通过这样做解决了这个问题
截至 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!