我們有大量的測試用例類來執行一些檢查。我需要生成所有那些相同的測試,但改變一個變量的值。 例如:Python元編程。在可變值發生變化時生成大量類似的測試
class DynamicPivotSeriesTestCase(AuthenticatedApiTestCase):
'''
Test all series against a fixed category trying every format
'''
#binding
ftn = utils.format_test_name
# Test Params
base_url, formats = API_FORMATS['pivot']
base_test_name = 'test_pivot_series_{series}'
# Test vars
series = VARS
for srs in series:
params = {'series': srs, 'cats': 'campaign', 'from': '2013-07-31', 'to': '2013-07-31'}
test_name = ftn(base_test_name, params)
locals()[test_name] = utils.make_check_code(200, base_url, params, formats)
class DynamicPivotDerivedSeriesTestCase(AuthenticatedApiTestCase):
#binding
ftn = utils.format_test_name
# Test Params
base_url, formats = API_FORMATS['pivot']
base_test_name = 'test_pivot_derived_series_{series}'
# Test vars
series = DERIVED_VARS
for srs in series:
params = {'series': srs, 'cats': 'campaign', 'from': '2013-07-31', 'to': '2013-07-31'}
test_name = ftn(base_test_name, params)
locals()[test_name] = utils.make_check_code(200, base_url, params, formats)
還有像150周的測試那樣,我不能複製粘貼代碼。我需要遍歷全局變量,訪問每個(class_name,類對象),檢查類是否爲測試類,如果需要,我需要實例化一個新的測試類,它與當前訪問中的類測試具有相同的主體,但我需要爲base_url變量設置一個不同的值。這是我不明白如何實現的。
你試過遍歷'globals()'嗎?它不起作用嗎?你知道如何實例化一個類嗎? – scytale
我不明白我如何實例化所需的類來解決問題。 – FranGoitia
你不明白如何實例化一個類?或者在這種情況下如何去做。迭代'globals()'怎麼樣? – scytale