我是Python的新手,我尝试过这个任务: 我正在尝试根据已经存在于字典(validation_dict)中的暴风测试结果生成XML结构。我只包括不符合预先存在的基线的测试结果。
我需要我的结果的结构是Xunit / nose使用的结构 - 在这里找到:Xunit:以xunit格式输出测试结果
我正在尝试构建我的字典结构,使其类似于:
test_results =
{"suite1": {"test1": "test1 result","test2": "test2 result"},
"suite2": {"test3": "test3 result","test4": "test4 result"}
}
这样它最终会像这样扩展(根据上面链接的Xunit格式):
<testsuite name="suite1">
<testcase name="test1">
<error message="test1 result">
</testcase>
<testcase name="test2">
<error message="test2 result">
</testcase>
</testsuite>
<testsuite name="suite2">
<testcase name="test3">
<error message="test3 result">
</testcase>
<testcase name="test4">
<error message="test4 result">
</testcase>
</testsuite>
基于validation_dict包含所有结果&amp;我正在尝试基于那些不符合基线结果的测试来构建我的字典结构:
为了达到上述结构,在我看来,我必须做以下事情:
一个新词典(test_results),用于存储所有非基线投诉的测试 如果那里当前不存在testsuites(suite_name),则根据测试套件的名称生成新的字典。 套件中的失败测试被添加到每个测试套件中 没有通过的测试被添加到字典
到目前为止,这是我的方法:
for test_result in validation_dict:
is_valid = True
for i in validation_dict:
if validation_dict[i].outcome != 'pass':
test_results = {}
suite = {}
str = validation_dict[i].test_id
str.split(" : ");
suite_name,test_name = str.split(" : ")
# check if suite_name is already in test_results
if suite_name not in test_results.values():
# create new dict based upon testsuite name?
validation_dict[i].suite_name = {}
# if it's not then add a new dict to test_results
validation_dict[i].suite_name[test_name] = validation_dict[i].outcome
我无法判断我是否正确执行此操作,因为我无法检查字典名称以查看是否根据每个测试套件(suite_name)单独命名它们。也许我正在以错误的方式解决这个问题。