2015-08-14 3 views
0

У меня уже есть тестовая записка носа, и я хочу наследовать один и тот же объект для другого тестового примера, поскольку я собираюсь изменить только один параметр.Ввод тестовых примеров в nosetests Python

Итак, чтобы понять, как это работает, я попытался имитировать следующее, используя 2 класса NoseTesting и NoseTestingInherit.

Когда я запускаю это:

  1. Я не вижу, оператор печати, печати.
  2. Когда я запускаю код, я получаю следующий результат:

    ---------------------------------------------------------------------- 
    Ran 0 tests in 0.000s 
    

я не уверен, какой метод испытания побежал - Это test_this_method_dup или test_this_method?

class NoseTesting(): 
    def test_this_method_dup(): 
     print "Test this method" 

class NoseTestingInherit(NoseTesting): 
    def test_this_method(): 
     print "Test this method" 

Новый код: -

import unittest 
class NoseTesting(unittest.TestCase): 
    def test_this_method_dup(self,): 
     print "Test this method" 


class NoseTestingInherit(NoseTesting): 
    def test_this_method(self,): 
     print "Test this method" 

Выход :

test_this_method_dup (nosetesting.NoseTesting) ... ok 
test_this_method (nosetesting.NoseTestingInherit) ... ok 
test_this_method_dup (nosetesting.NoseTestingInherit) ... ok 

---------------------------------------------------------------------- 
Ran 3 tests in 0.003s 

OK 
+0

Похоже, ни один из ваших тестовых классов не обнаружен как имеющий тестовые примеры. Я не знаком с носовыми испытаниями, вы должны наследовать какой-нибудь базовый класс TestCase или назвать свои тестовые классы каким-то особым образом, чтобы тестовая среда их распознала? – Blckknght

ответ

0

Как @IanAuld сказал, nosetest не обнаружил ваши тесты. Согласно вашему примеру, вам не нужно явно переписывать метод, если вы не переопределяете метод, так как он неявно унаследован.

class NoseTesting(unittest.TestCase): 
    def test_this_method_dup(self): 
     print "Test this method" 

class NoseTestingInherit(NoseTesting): 
    # implicitly inherit test_this_method_dup() 
    # self.test_this_method_dup() 
+0

После того, как я наследую его, я вижу, что в моем выпуске 3 пробега. Я дал последний код выше ... Я не уверен, почему test_this_method_dup работает дважды. – user1050619

+0

@ user1050619 Inheritance делает nosetest для запуска повторяющихся тестов. Следуйте этой ссылке http://erikzaadi.com/2012/09/13/inheritance-within-python-unit-tests/, чтобы использовать свойства магии, чтобы игнорировать базовые тесты. – PieOhPah

1

Из nosetest документы:

Тест класса является класс, определенный в тестовом модуле которое соответствует testMatch или является подклассом unittest.TestCase.

Ваши классы не соответствуют этому образцу.

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