如何从循环中创建字典以在Python中使用XML进行结构化?

时间:2014-09-26 23:12:57

标签: python xml

我是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)单独命名它们。也许我正在以错误的方式解决这个问题。

0 个答案:

没有答案