Как провести тестовые занятия в номере один за другим? - PullRequest
0 голосов
/ 22 мая 2018

Я написал тестовый набор для выполнения всех моих тестовых классов один за другим.Но проблема в том, что во время выполнения он берет методы из обоих классов и выполняет их сразу.

, поэтому я хочу написать код, в котором будут выполняться все методы в одном классе, а затем он перейдет к следующему.тестовый класс.

код тестового класса

from pages.Home.hamburger_page import HamburgerPage
from utilites.testStatus import TestStatus
import pytest
import unittest


@pytest.mark.usefixtures("oneTimeSetUp", "setUp")
class hamburgerTest(unittest.TestCase):

@pytest.fixture(autouse=True)
def classSetup(self, oneTimeSetUp):
    self.ha = HamburgerPage(self.driver)
    self.ts = TestStatus(self.driver)

@pytest.mark.run(order=1)
def test_hamburger_menu_latest_WAF021(self):
    result = self.ha.find_latest()
    self.ts.markFinal("To find latest link", result, "Click on latest link")

@pytest.mark.run(order=2)
def test_hamburger_menu_top__WAF022(self):
    result = self.ha.find_topics_links()
    self.ts.markFinal("To find top link", result, "Click on top link")

@pytest.mark.run(order=3)
def test_hamburger_menu_badges__WAF023(self):
    result = self.ha.find_badges()
    self.ts.markFinal("To find badges link", result, "Click on badges link")

@pytest.mark.run(order=4)
def test_hamburger_menu_users__WAF024(self):
    result = self.ha.find_users()
    self.ts.markFinal("To find user link ", result,"Click on users link")

@pytest.mark.run(order=5)
def test_hamburger_menu_groups__WAF025(self):
    result = self.ha.find_groups()
    self.ts.markFinal("To find groups link", result, "Click on groups link")

@pytest.mark.run(order=6)
def test_hamburger_menu_announcements__WAF026(self):
    result = self.ha.find_announcements()
    self.ts.markFinal("To find announcements link", result, "Click on announcements link")

второй тест

from pages.Home.topic_page import topicPage
from utilites.testStatus import TestStatus
import pytest
import unittest
import time

@pytest.mark.usefixtures("oneTimeSetUp","setUp")
class TopicTest(unittest.TestCase):
@pytest.fixture(autouse=True)
def classSetup(self,oneTimeSetUp):
    self.tp = topicPage(self.driver)
    self.ts = TestStatus(self.driver)

@pytest.mark.run(order=1)
def test_header_login(self):
    self.tp.find_header_logIn()

@pytest.mark.run(order=2)
def test_validLogin(self):
    self.tp.getelements("xxxxxx@xxx.com", "xxxxx")
    time.sleep(3)

@pytest.mark.run(order=3)
def test_FirstLinkInAnnouncements(self):
    self.tp.find_first_announcement_link()
    time.sleep(3)

@pytest.mark.run(order=5)
def test_TitleVerfication(self):
    self.tp.find_title()
    time.sleep(5)

@pytest.mark.run(order=4)
def test_ReplyDropDown(self):
    self.tp.find_scrollupfull()
    time.sleep(4)
    self.tp.find_topic_page_reply()

тестовый набор

import unittest
from tests.Home.hamburger_test import hamburgerTest
from tests.Home.topic_test import TopicTest

# Get all tests from the test classes
tc1 = unittest.TestLoader().loadTestsFromTestCase(hamburgerTest)
tc2 = unittest.TestLoader().loadTestsFromTestCase(TopicTest)

# Create a test suite combining all test classes

Test1 = unittest.TestSuite([tc1, tc2])


unittest.TextTestRunner(verbosity=2).run(Test1)

Ответы [ 2 ]

0 голосов
/ 23 мая 2018

Вы используете плагин pytest-ordering (https://pytest -ordering.readthedocs.io / en / develop / ).Вы устанавливаете порядок, в котором должны выполняться тесты.Это заставляет pytest выполнять тесты от высшего порядка (1) до самого низкого.Тесты с одинаковым порядком можно найти в обоих классах, поэтому pytest прыгает между классами.

0 голосов
/ 22 мая 2018

вы должны выполнить tc1 и tc2 отдельно.например

Test1 = unittest.TestSuite([tc1])
Test2 = unittest.TestSuite([tc2])

unittest.TextTestRunner(verbosity=2).run(Test1)
unittest.TextTestRunner(verbosity=2).run(Test2)

Надеюсь, это решит вашу проблему.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...