Unix 如何通过sed读取travis日志上的junit结果?
我通过Unix 如何通过sed读取travis日志上的junit结果?,unix,sed,Unix,Sed,我通过echo添加了3个样本跟踪 我读取日志文件 我想使用sed。我想知道我的all测试中是否有错误 run.sh #!/usr/bin/env bash echo "[1565214900.443][SEVERE]: Timed out receiving message from renderer: -0.011" echo "[INFO] Tests run: 4, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 7.16 s - in
echo
添加了3个样本跟踪
我读取日志文件
我想使用sed
。我想知道我的all测试中是否有错误
run.sh
#!/usr/bin/env bash
echo "[1565214900.443][SEVERE]: Timed out receiving message from renderer: -0.011"
echo "[INFO] Tests run: 4, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 7.16 s - in com.github.noraui.browser.AuthUT"
echo "[INFO] Running com.github.noraui.gherkin.GherkinConditionedLoopedStepUT"
curl -s "https://api.travis-ci.org/jobs/${TRAVIS_JOB_ID}/log.txt?deansi=true" > nonaui.log
counterFailures=$(sed -n 's:.*\[INFO\] Tests run\: 4, Failures\:\(.*\), Errors\: 0, Skipped\: 0, Time elapsed.*:\1:p' nonaui.log | head -n 1)
echo "******** counter: $counterFailures"
我的结果是
$ ./run.sh
[1565214900.443][SEVERE]: Timed out receiving message from renderer: -0.011
[INFO] Tests run: 4, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 7.16 s - in com.github.noraui.browser.AuthUT
[INFO] Running com.github.noraui.gherkin.GherkinConditionedLoopedStepUT
******** counter:
The command "./run.sh" exited with 0.
我的样本在线,我的样本结果在线我认为这应该有效:
#!/usr/bin/env bash
echo "[1565214900.443][SEVERE]: Timed out receiving message from renderer: -0.011" > nonaui.log
echo "[INFO] Tests run: 4, Failures: 10, Errors: 0, Skipped: 0, Time elapsed: 7.16 s - in com.github.noraui.browser.AuthUT" >> nonaui.log
echo "[INFO] Running com.github.noraui.gherkin.GherkinConditionedLoopedStepUT" >> nonaui.log
counterFailures=$(sed -n 's/.*\[INFO\] Tests run: 4, Failures:\(.*\), Errors: 0, Skipped: 0, Time elapsed.*/\1/p' nonaui.log | head -n 1)
echo "******** counter: $counterFailures"
我猜代码顶部的echo语句是示例,因为您没有显式地共享它们。这是我运行它时看到的:
$ ./run.sh
******** counter: 10
$
两件事:
:
作为sed分隔符,但您的模式中也有冒号您的regexp模式太特殊,无法处理任何输入 sed: GNU grep:
counterFailures=$(grep -oP 'Tests run.*Failures: \K[0-9]+' nonaui.log | head -n 1)
提供一个nonaui.log的例子就好了。noraui.log是3
echo
sample。您可以在网上找到我的示例:和我的示例结果:您知道我是否有多个echo“[INFO]测试运行:4,失败…
?我希望获取所有出现的情况。我尝试使用\g
,但不起作用。
counterFailures=$(grep -oP 'Tests run.*Failures: \K[0-9]+' nonaui.log | head -n 1)