Я пытаюсь выполнить мой следующий набор тестов:
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?