Запуск python юнит-тестов из TestSuite в PyCharm не упорядочит тесты по алфавиту, но запуск того же файла в терминале упорядочит их - PullRequest
0 голосов
/ 25 февраля 2020

Я работаю над написанием юнит-тестов, но их нужно было запускать, когда я добавил их в TestSuite. Поэтому моя проблема в том, что когда я запускаю testrunner.py из PyCharm, я получаю то, что мне нужно, но если я запускаю тот же файл из терминала, тесты сортируются по алфавиту, и это плохо для меня.

Например: у меня есть 2 test, test_dummy_01.py и test_dummy_01 в папке «tests /» моей платформы. Также я создал файл testrunner.py, в который я сначала добавляю класс TestDummy02, а затем класс TestDummy01. Поэтому, когда я запускаю testrunner.py из PyCharm, сначала запускается тест test_dummy_02.py, а за секунду test_dummy_01.py, что мне хорошо. Теперь мне нужно то же поведение, когда я запускаю один и тот же файл в терминале, но сначала он всегда запускает файл test_dummy_01.py. Поэтому, пожалуйста, если кто-нибудь может мне помочь?

Иерархия папок моих файлов:

Project/
       tests/
             test_dummy_01.py 
             test_dummy_02.py
       testrunner.py

test_dummy_01.py test: - test_dummy_02 Файл .py такой же, как этот

class TestDummy01(BaseTestCase):

    def setUp(self):
        super(TestDummy, self).setUp()

    def test_dummy_01(self):
        driver = self.driver
        login = LoginPage(driver)
        login.enter_username("Something")

    def tearDown(self):
        super(TestDummy, self).tearDown()

Файл testrunner.py , в который я добавил заказ

import sys
import unittest
from tests.test_dummy_01 import TestDummy01
from tests.test_dummy_02 import TestDummy02


def suite():
    suite_x = unittest.TestSuite()
    suite_x.addTest(unittest.makeSuite(TestDummy02)) # In PyCharm this test is runned first, but in Teminal this will run by second
    suite_x.addTest(unittest.makeSuite(TestDummy01))

    return suite_x


def run():
    result = unittest.TextTestRunner(verbosity=2).run(suite())
    if not result.wasSuccessful():
        sys.exit(1)


if __name__ == '__main__':
    run()

Терминал PyCharm

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