2016-04-18 3 views
4

Я пытаюсь запустить только один тест из модульных тестов, предоставляемых в классе. Таким образом, еслиЗапуск конкретных модульных тестов в python из main()

class MytestSuite(unittest.TestCase): 
    def test_false(self): 
     a = False 
     self.assertFalse(a, "Its false") 

    def test_true(self): 
     a = True 
     self.assertTrue(a, "Its true") 

Я хотел был бы запустить только test_false. На основе Q & предоставляемые на этом сайте и на сайте я использовал следующие строки кода в моем главном классе

if __name__ == "__main__": #Indentation was wronng 
    singletest = unittest.TestSuite() 
    singletest.addTest(MytestSuite().test_false) 
    unittest.TextTestRunner().run(singletest) 

Я постоянно получаю ошибки при попытке добавить тест. В основном:

File "C:\Python27\Lib\unittest\case.py", line 189, in __init__ 
(self.__class__, methodName)) 
ValueError: no such test method in <class '__main__.MytestSuite'>: runTest 

Нужен ли мне конкретный метод runTest в моем классе? Есть ли способ запуска отдельных тестов, которые могут принадлежать различным наборам. Например: Способ принадлежащий люкс класса 1 и метод Б принадлежность к классу ванной 2. Удивительно, но это оказалось трудно найти в Интернете. Есть несколько примеров выполнения этого через командную строку, но не из самой программы. Как всегда, любая помощь приветствуется.

+0

Я как раз собирался отредактировать для отступов, но потом это меня поразило. Вы проверяли отступ для класса MytestSuite? Похож на пустой класс для меня, если функции не были отступом. – noumenal

+0

Извините за отступ. Я откладываю это правильно в своей программе. Я просто не мог заставить его работать в StackOverflow, хотя я уже давно использовал этот сайт :) – Fizi

+0

4 пробела сделают это :-) – noumenal

ответ

4

Вы просто передаете неправильную вещь addTest. Вместо того, чтобы передавать связанный метод, вам нужно передать новый экземпляр TestCase (в вашем случае экземпляр MyTestSuite), построенный с именем одного теста, который вы хотите запустить.

singletest.addTest(MyTestSuite('test_false')) 

The Docs имеют много дополнительной информации и примеров по этому вопросу.

+0

Ahh Thank You. еще одна причина, по которой я должен быть более тщательным с чтением документов. – Fizi

Смежные вопросы