【问题标题】:How to run a pytest method multiple times?如何多次运行pytest方法?
【发布时间】:2018-11-14 10:40:37
【问题描述】:

我正在尝试使用 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-repeat 无法使用 unittest.TestCase 测试类。这些测试将始终运行一次,而不管 --count,并显示警告。
  • 有没有其他方法可以让我多次运行它??

标签: python-3.x selenium pytest


【解决方案1】:
 @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()

我可以通过这样做来解决它

【讨论】:

    【解决方案2】:

    自 2020 年 10 月 31 日起,有更好的方法可以做到这一点。见https://pypi.org/project/pytest-repeat/


    只需 pip install pytest-repeat 并使用 --count。示例:pytest --count=10 test_file.py

    【讨论】:

    • 这不适用于继承 unittest.TestCase 的测试。
    【解决方案3】:

    如果您将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!
    

    【讨论】:

    • (在运行该示例之前使用pip install parameterized 安装。)
    猜你喜欢
    • 2018-04-06
    • 2022-10-13
    • 2022-11-24
    • 2020-11-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多