blob: 053f723e67b8c5da1a3855ce411ddb16653a6a89 [file] [log] [blame]
#!/usr/bin/python
import xml.etree.ElementTree as ET
import sys
import os
import csv
import operator
reload(sys)
sys.setdefaultencoding('utf-8')
fieldnames = ['classname', 'testcase', 'error_message','type','info'];
singlelinecsvfile = open("single_line_calcite_failed_tests.csv", "w");
failed_tests = []
with open('calcite_failed_tests.csv', 'w') as csvfile:
writer = csv.writer(csvfile);
writer.writerow(fieldnames);
target_dir = os.path.join(os.getcwd(),'phoenix-core/target');
list_of_dirs = os.listdir(target_dir);
for dir in list_of_dirs:
if dir == "failsafe-reports" or dir == "surefire-reports":
reports_dir = os.path.join(os.getcwd(),os.path.join('phoenix-core/target',dir));
list_of_files = os.listdir(reports_dir);
for each_file in list_of_files:
if each_file.startswith('TEST-'):
tree = ET.parse(os.path.join(reports_dir,each_file));
root = tree.getroot()
for elem in root.iter("testcase"):
for child in elem.getchildren():
test_case_details = []
if child.tag == "failure" or child.tag == "error":
classname = elem.get('classname');
testcase = elem.get('name');
error_message = child.get('message');
type = child.get('type');
info = child.text;
test_case_details.append(classname);
test_case_details.append(testcase);
test_case_details.append(error_message);
test_case_details.append(type);
test_case_details.append(info);
failed_tests.append(test_case_details);
singlelinecsvfile.write(classname+',');
singlelinecsvfile.write(testcase+',');
singlelinecsvfile.write(type.replace('\n',"\r")+',');
singlelinecsvfile.write(info.replace('\n',"\r"));
singlelinecsvfile.write("\b")
sortedlist = sorted(failed_tests, key=operator.itemgetter(2))
writer.writerows(sortedlist);
csvfile.close();
singlelinecsvfile.close();