В настоящее время это не документировано и невозможно выполнить аутентификацию AAD на LocalDB.
Вы можете использовать программу запуска тестов, которая сделает это за вас. нос очень хорош, например. При запуске он находит тесты в текущем дереве и запускает их.
Обновлено:
Вот код из моих дней до появления носа. Вероятно, вам не нужен явный список имен модулей, но, возможно, остальные будут вам полезны.
testmodules = [
'cogapp.test_makefiles',
'cogapp.test_whiteutils',
'cogapp.test_cogapp',
]
suite = unittest.TestSuite()
for t in testmodules:
try:
# If the module defines a suite() function, call it to get the suite.
mod = __import__(t, globals(), locals(), ['suite'])
suitefn = getattr(mod, 'suite')
suite.addTest(suitefn())
except (ImportError, AttributeError):
# else, just load all the test cases from the module.
suite.addTest(unittest.defaultTestLoader.loadTestsFromName(t))
unittest.TextTestRunner().run(suite)
Это - старый вопрос, но что работало на меня, теперь (в 2019):
python -m unittest *_test.py
Все мои тестовые файлы находятся в той же папке как исходные файлы, и они заканчивают _test
.
Хорошо, немного изучив приведенный выше код (в частности, используя TextTestRunner
и defaultTestLoader
), я смог подойти довольно близко. В конце концов я исправил свой код, просто передав все наборы тестов в один конструктор наборов, вместо того, чтобы добавлять их «вручную», что устранило другие мои проблемы. Итак, вот мое решение.
import glob
import unittest
test_files = glob.glob('test_*.py')
module_strings = [test_file[0:len(test_file)-3] for test_file in test_files]
suites = [unittest.defaultTestLoader.loadTestsFromName(test_file) for test_file in module_strings]
test_suite = unittest.TestSuite(suites)
test_runner = unittest.TextTestRunner().run(test_suite)
Да, наверное, проще просто использовать нос, чем делать это, но не в этом суть.