Запустите модульный тест Python, когда импортирован только TestCase

Я унаследовал тестовый каталог, который выглядит так:

tests
  | this_test
    | __init__.py
    | this_test.py  
  | that_test
    | __init__.py
    | that_test.py

Где __init.py__ пусты, а this_test.py и that_test.py выглядят так:

from unittest import TestCase

class TestingThis(TestCase):

    def test_testing(self):
        self.assertTrue(1, 1)

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

import unittest

class TestingThis(unittest.TestCase):

    def test_testing(self):
        self.assertTrue(1, 1)

if __name__ == '__main__':
    unittest.main()

Который я могу запустить из терминала в каталоге с python3 this_test.py. Я пробовал множество способов запустить их в терминале, но безуспешно и не нашел в своем поиске ничего, что показывало бы этот шаблон.

Является ли это фактическим шаблоном проектирования для тестов или их просто нужно исправить?


person DjH    schedule 28.04.2017    source источник


Ответы (2)


Вы можете использовать nosetests из пакета nose для обнаружения и запуска тестов. Очень полезно собирать и запускать все тесты, даже исходящие из строки документации. Кроме того, с его помощью вы можете создать отчет JUnit XML.

pip install nose
# Show all nosetests options
nosetests --help
cd tests
nosetests
person Guillaume Jacquenot    schedule 29.04.2017

Вы можете использовать нос для запуска тестов и начинать имя ваших тестовых файлов с 'test_' , чтобы нос мог обнаруживать тестовые файлы и тестировать внутри них.

Пример — test_this.py

person Shashank    schedule 24.05.2017