Python, модульный тест - параметры командной строки Передачи к установке unittest. TestCase

C11 поддерживает типовые выражения, которые должны делать то, что вы ищете:

#define Set_b(X, y) _Generic((X), A: Set_b_A,\
                                  B: Set_b_B \
                            )((X), (y))

Затем просто реализовать Set_b_A и Set_b_B для соответствующих типов.

30
задан Peter Mortensen 15 April 2010 в 16:27
поделиться

2 ответа

Ну, я хочу сделать то же самое и собирался спросить этот вопрос сам. Я хотел улучшить по следующему коду, потому что он имеет дублирование. Это позволит мне отправить в аргументы для проверки тестирования тестирования:

import unittest
import helpspot

class TestHelpSpot(unittest.TestCase):
    "A few simple tests for HelpSpot"

    def __init__(self, testname, path, user, pword):
        super(TestHelpSpot, self).__init__(testname)
        self.hs = helpspot.HelpSpot(path, user, pword)

    def test_version(self):
        a = self.hs.version()
        b = self.hs.private_version()
        self.assertEqual(a, b)

    def test_get_with_param(self):
        a = self.hs.filter_get(xFilter=1)

    def test_unknown_method(self):
        self.assertRaises(helpspot.HelpSpotError, self.hs.private_wuggienorple)

if __name__ == '__main__':
    import sys
    user = sys.argv[1]
    pword = sys.argv[2]
    path = sys.argv[3]

    test_loader = unittest.TestLoader()
    test_names = test_loader.getTestCaseNames(TestHelpSpot)

    suite = unittest.TestSuite()
    for test_name in test_names:
        suite.addTest(TestHelpSpot(test_name, path, user, pword))

    result = unittest.TextTestRunner().run(suite)
    sys.exit(not result.wasSuccessful())
47
ответ дан 27 November 2019 в 23:47
поделиться

Я бы определенно не советовал передавать аргументы в setUp вот так; setUp предназначен для неявного вызова при запуске теста, поэтому не следует явно вызывать его следующим образом.

Одним из способов решения этой проблемы было бы установить значения, которые необходимо установить либо как переменные среды, либо как значения в глобально доступном «контекстном» модуле, что позволило бы тестовым примерам получать к ним доступ при необходимости. Я бы хотел использовать переменные окружения, так как он более гибок в плане выполнения тестов (тогда вы больше не полагаетесь на аргументы командной строки).

4
ответ дан Gabriel Reid 27 November 2019 в 23:47
поделиться
Другие вопросы по тегам:

Похожие вопросы: