Предположим, у меня есть myclass_test.py
с Носом тестов со следующими строками:
import nose
class TestMyClass:
def test_method(self):
assert true
def test_another_method(self):
assert true
if __name__ == "__main__":
nose.runmodule()
Так что я могу запустить python myclass_test.py
и пройти все свои тесты. Все работает, как и ожидалось.
Что я должен передать runmodule () для запуска одного теста (например, test_method
)?
Если это невозможно с Nose, возможно ли с какой-то другой структурой модульного тестирования таким же образом (с бегуном внутри модуля)?
PS На самом деле я запускаю не python myclass_test.py
, а sage myclass_test.sage
. Это интерпретатор SageMath и файл SageMath. Код SageMath - это, в основном, код Python, а myclass_test.sage
, наконец, готовит к myclass_test.sage.py
и запускается со встроенным интерпретатором Sage Python.
Так что он не распознается как модуль интерпретатором Python, поэтому передача чего-то вроде sage myclass_test.sage TestMyClass.test_method
или sage myclass_test.sage myclass_test.sage:TestMyClass.test_method
или sage myclass_test.sage myclass_test.sage.py:TestMyClass.test_method
не работает (по той же причине, что один не может напрямую импортировать файл sage как модуль ). Даже при том, что Нос проходит argv
на runmodule()
автоматически.
PPS Также я не могу использовать внешний бегун, такой как nosetests -q -s sage myclass_test.sage:TestMyClass.test_method
.