Подтвердить что ты не робот

Почему ничто не находит ничего?

Я перехожу из python unittest framework в nosetests, пытаясь повторно использовать my unittest.TestCase s

После cd в мой тестовый пакет я начал nosetests как описано на их домашней странице:

./test/$ nosetests

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

OK

Почему мне нужно указывать каждый модуль, чтобы нос обнаруживал его тесты, как в следующем примере?

./test/$ nosetests test_all.py
.......
----------------------------------------------------------------------
Ran 7 tests in 0.002s

OK

Также при запуске тестов одна папка выше ничего не меняет.

./tests/$ cd ..
./$ nosetests

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

OK
4b9b3361

Ответ 1

Я могу видеть в вашем репо, что хотя бы некоторые из файлов исполняемы, так что это по крайней мере часть проблемы. По умолчанию нос не будет собирать те: он пытается избежать запуска скриптов, которые могут сделать что-то разрушительное при импорте. Попробуйте флаг -exe или удалите исполняемый бит из тестовых файлов.

Ответ 2

Вам нужно быть в указанном выше каталоге, если вы хотите, чтобы нос запускал все тесты в этом пакете.

Ответ 3

В моем случае у меня была следующая строка в конце тестовых файлов:

unittest.main()

Удаление этого из всех моих тестов решило мою проблему.

Ответ 4

Я вижу тот же вывод для кода ниже, если его запускают как _nosetests test_runner.py_ , но, если он работает так же, как _python test_runner.py_ работает отлично, я полностью смущен, я новичок в python, любезно Помоги мне версия python 2.7 в Mac

код

import unittest

import A_Suite
import B_Suite


class DemoTest ():


        def runTest(self):
            """ Test addition and succeed. """

            self.failUnless ( 1 + 1 == 2, 'one plus one fails!' )

            self.failIf ( 1 + 1 != 2, 'one plus one fails again!' )

            self.failUnlessEqual ( 1 + 1, 2, 'more trouble with one plus one!' )


def suite():

    suite = unittest.TestSuite ()

    suite.addTest ( issue1Suite.A_Suite  () )
    suite.addTest ( issue2Suite.B_Suite () )



    return suite


if __name__ == '__main__':
    runner = unittest.TextTestRunner ()
    test_suite = suite ()
    runner.run ( test_suite )
    unittest.main ()