我有一个要解析的测试结果日志,基本上只是序列行上的一对key=value
对,最后用//
分隔。
除输出文件外,一切似乎都很棒。在普通的记事本中,它看起来很好。在Notepad ++中,它有一堆额外的行。从输出文件中查看符号时,原始文件行以CR
结尾,而全部空白的新行将注入CRLF
。
它的输入文件在两者中都是相同的,所有行都以CRLF
结尾。我希望它的输出文件看起来都一样。
我需要针对所需的行为修复什么?我尝试添加一个gsub来删除第一次替换contents = contents.gsub(/^\n/m, "")
后空白的行,但这似乎不会改变输出。
输入文件,test_results.log:
// Test_App=moduleTwo_test.exe Test_Function=genericTestOne() Test_Iterations=5 Test_Health=100 % Test_Result=PASSED Test_Path=C:\rb-tests\moduleTwo_test.exe // Test_App=subModuleOne_test.exe Test_Function=iAlwaysFail() Test_Iterations=5 Test_Failures=5 Test_Health=0 % Test_Result=FAILED Retest_Iterations=20 Retest_Failures=20 Retest_Health=0 % Retest_Result=FAILED Test_Path=C:\rb-tests\subModuleOne_test.exe // Test_App=subModuleOne_test.exe Test_Function=genericTestOne() Test_Iterations=5 Test_Health=100 % Test_Result=PASSED Test_Path=C:\rb-tests\subModuleOne_test.exe //
Ruby Script,find_fails.rb
this_dir = File.dirname(ARGV[0])
this_file = File.open(ARGV[0], "rb")
contents = this_file.read
contents = contents.gsub(/\/\/[ ](?>(?:(?!\/\/).))*?PASSED.*?(?=\/\/)/m, "")
contents = contents.gsub(/^\n/m, "")
File.write(this_dir + "\\fails.log", contents)
输出文件,fails.log,如Notepad ++中所示
// Test_App=subModuleOne_test.exe Test_Function=iAlwaysFail() Test_Iterations=5 Test_Failures=5 Test_Health=0 % Test_Result=FAILED Retest_Iterations=20 Retest_Failures=20 Retest_Health=0 % Retest_Result=FAILED Test_Path=C:\rb-tests\subModuleOne_test.exe //
所需的fails.log输出文件/格式,以及它在普通记事本中的样子:
// Test_App=subModuleOne_test.exe Test_Function=iAlwaysFail() Test_Iterations=5 Test_Failures=5 Test_Health=0 % Test_Result=FAILED Retest_Iterations=20 Retest_Failures=20 Retest_Health=0 % Retest_Result=FAILED Test_Path=C:\rb-tests\subModuleOne_test.exe //