我有一个日志文件,它是Nunit Runner的日志输出
我想解析文件以提取数据;
以下是示例日志文件:
我想提取测试计数,通过和失败的测试
如何使用Regex获取数据。
我正在使用模式和扫描程序类来扫描数据。
这是我用来读取文件的示例函数
更新:
我已使用以下代码提取测试结果,我想对此代码提出建议:
public int FilterLogFile(File LogFile) {
int TestCount = 0;
try {
String Line = "";
BufferedReader br = new BufferedReader(new FileReader(LogFile));
while ((Line = br.readLine()) != null) {
Scanner scanner = new Scanner(Line);
String line = scanner.findInLine(".*(Test Count:)\\s+\\d+\\D+\\s+.*(Passed:)\\s+\\d+\\D+\\s+.*(Failed:)\\s+\\d+");
if (line != null) {
System.out.println("Detected Line: " + line);
TestCount = ExtractData(Line);
break;
} else {
continue;
}
}
} catch (Exception ex) {
ex.printStackTrace();
}
return TestCount;
}
private int ExtractData(String strLine) {
int Count = 0;
try {
String[] Data = strLine.split(",");
for (String str : Data) {
if (str.contains("Test Count:")) {
int value = Integer.parseInt(str.replaceAll("[^0-9]", ""));
Count = value;
System.out.println(value);
break;
}
}
} catch (Exception ex) {
ex.printStackTrace();
}
return Count;
}
我正在处理的示例日志是:
答案 0 :(得分:0)
我希望这对你有帮助,
使用此,
a = "[test run server,overall result: Failed, Test count:09, Passed: 14, Failed: 1, skipped: 16, start: 1, end: 10, asd: asd,akdsu]"
/Test.+.(?:Failed:.\d+)/
正则表达式:/Test.+.(?:Failed:.\d+)/