Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用JUnit XML python模块向JUnit XML添加失败的测试_Python_Xml_Junit - Fatal编程技术网

使用JUnit XML python模块向JUnit XML添加失败的测试

使用JUnit XML python模块向JUnit XML添加失败的测试,python,xml,junit,Python,Xml,Junit,我有一些旧的C/Fortran代码,我正在将其集成到Bambol中。该代码附带了一系列测试,但最终结果是,如果测试“失败”,则会打印一些细节,否则将保持沉默。结果将编译成如下所示的文件: TEST_NAME,OUT,ERR tname0,, tname1,, tname2,,2c3ef0 因此,在上面的示例中,tname0和tname1通过,但tname2失败。这对文件意味着第一列始终有数据,第二列从不有数据,第三列只有在测试失败时才有数据 我正在使用JUnitXMLPython模块将测试结

我有一些旧的C/Fortran代码,我正在将其集成到Bambol中。该代码附带了一系列测试,但最终结果是,如果测试“失败”,则会打印一些细节,否则将保持沉默。结果将编译成如下所示的文件:

TEST_NAME,OUT,ERR
tname0,,
tname1,,
tname2,,2c3ef0 
因此,在上面的示例中,tname0和tname1通过,但tname2失败。这对文件意味着第一列始终有数据,第二列从不有数据,第三列只有在测试失败时才有数据

我正在使用JUnitXMLPython模块将测试结果写入xml,以便竹的junit解析器能够读取它。但是,我不知道如何添加失败的测试用例,junit xml文档似乎没有任何示例:

这是我的解析器的要点:

来自junit\u xml导入测试套件,TestCase
导入操作系统
def main(fname,testname=“DEFAULT”):
测试用例=[]
testIdx=0
以open(fname,'r')作为fid:
对于fid.readlines()中的行:
testIdx+=1
行=行。拆分(“,”)
test_cases.append((TestCase(“test”+str(testIdx),第[0]行,第[1]行,第[2]行))
ts=TestSuite(testname,测试用例)
xmlstr=TestSuite.to_xml_字符串([ts])
#竹子的默认设置是在名为“**/testreports/”的目录中查找JUnitXML
ofile=os.path.join(“测试报告”、“测试报告”+testname+”.xml”)
打开(ofile,“w”)作为ofid:
ofid.write(xmlstr)
不幸的是,它似乎从未检测到失败的测试。它肯定会将错误消息放入
标记中,但它似乎从未实际检测到任何错误,并且xml文件的顶部总是这样:

TEST_NAME,OUT,ERR
tname0,,
tname1,,
tname2,,2c3ef0 


是否有我遗漏的内容和/或更全面的文档?即使我强行使用它并计算错误并在xml字符串中执行查找替换以写入
errors=“1”
或者别的什么,Bambor不会将它们视为失败的测试,所以我觉得一定有更微妙的事情发生。

我跨过同样的问题,发现测试用例拥有方法TestCase。添加错误信息(“您的错误信息”) 如果您创建一个TestCase并执行这个方法,那么在TestCase和TestSuite中都会考虑这个错误

e、 g: