Запуск набора тестов с обоих терминалов, используя pytest и unittest runner, но показывает только результаты runtest unittest и выполняется один раз - PullRequest
0 голосов
/ 29 августа 2018

Я пытаюсь выполнить мой следующий набор тестов:

import unittest
from Login_Page import LoginPageAndLogout


def test_suite():
    # get all tests from classes
    login_test = unittest.TestLoader().loadTestsFromTestCase(LoginPageAndLogout)

    # create a test suite
    all_tests = unittest.TestSuite([
        login_test
    ])

    # run the suite
    unittest.TextTestRunner(verbosity=2).run(all_tests)

из терминала Пичарма с помощью команды:

sudo pytest selenium-tests/testSuite.py -vvv -s

и часть вывода следующая:

============================================================================================================ test session starts ============================================================================================================
platform linux2 -- Python 2.7.14, pytest-3.1.3, py-1.4.34, pluggy-0.4.0 -- /usr/bin/python
cachedir: .cache
rootdir: /home/osboxes/PycharmProjects/WebTesting, inifile:
plugins: cov-2.5.1
collected 3 items 

selenium-tests/testSuite.py::LoginPageAndLogout::test_failed_login <- selenium-tests/Login_Page.py PASSED
selenium-tests/testSuite.py::LoginPageAndLogout::test_login <- selenium-tests/Login_Page.py FAILED
selenium-tests/testSuite.py::test_suite test_failed_login (Login_Page.LoginPageAndLogout) ... ok
test_login (Login_Page.LoginPageAndLogout) ... ok

----------------------------------------------------------------------
Ran 2 tests in 55.993s

Структура моего Login_Page.py файла:

class LoginPageAndLogout(unittest.TestCase):

    def setUp(self):
        # ...

    # login with incorrect credentials to get error message
    def test_failed_login(self):
        # ...

    # login with correct credentials
    def test_login(self):
        # ...

    def tearDown(self):
        # ...

Как видно из вывода, у меня есть 2 теста, но терминал вместо этого собирает три вещи и запускает каждый тест дважды. Есть ли способ выполнить только PASSED/FAILED выполнение, а не ... ok?

Если я закомментирую unittest.TextTestRunner(verbosity=2).run(all_tests), мои тесты будут выполнены только один раз, но я получу результат ... ok вместо PASSED/FAILED, который мне нужен; поэтому я вижу результаты выполнения pytest вместо результатов бегуна юнит-тестов.

Как я могу запустить из терминала мой пакет, используя только бегун unitest?

1 Ответ

0 голосов
/ 03 сентября 2018

Решение этого было довольно простым, поскольку я просто неправильно понял, как выполнялся мой модульный тест все это время.

Единственное, что мне нужно было сделать, это закомментировать весь класс test_suite из моего файла testSuite.py и просто импортировать в начало этого файла классы из тестовых сценариев, которые я хотел выполнить.

Теперь мои тесты запускаются только один раз, и я все еще могу выполнить все свои сценарии одновременно, не вводя их в моей команде один за другим, используя одну и ту же команду: sudo pytest selenium-tests/testSuite.py -vvv -s

Теперь вывод этой команды:

osboxes@osboxes:~/PycharmProjects/WebTesting$ sudo pytest selenium-tests/testSuite.py -vvv -s
========================================================================================================================= test session starts ==========================================================================================================================
platform linux2 -- Python 2.7.14, pytest-3.1.3, py-1.4.34, pluggy-0.4.0 -- /usr/bin/python
cachedir: .cache
rootdir: /home/osboxes/PycharmProjects/WebTesting, inifile:
plugins: cov-2.5.1
collected 2 items 

selenium-tests/testSuite.py::LoginPageAndLogout::test_failed_login <- selenium-tests/Login_Page.py PASSED
selenium-tests/testSuite.py::LoginPageAndLogout::test_login <- selenium-tests/Login_Page.py PASSED

====================================================================================================================== 2 passed in 58.81 seconds =======================================================================================================================
osboxes@osboxes:~/PycharmProjects/WebTesting$ 
...