On Travis CI
我喜欢测试构建是否因预期的某些输入而失败,但仍希望整个作业成功。有没有办法实现这个目标?
最近我能想到的是allow_failures,但这还不够,因为如果成功,有问题的工作会通过,这意味着我的代码中存在错误。假阳性。我想检查真阴性。
感谢。
答案 0 :(得分:1)
要确保当程序退出而不是0
时,错误值(或返回值或退出值)为0
,您可以执行以下两项操作之一:
您可以执行简单的操作,并在调用之前放置!
,如下所示:
!test_that_should_fail
这将反转(作为一元!
op)0
至1
以及任何非0
至0
,确保该命令如果成功就会失败。
您还可以执行if
- 测试,详细说明here,如下所示:
# This will store $? and make the expression's exit value `0`
test_that_should_fail; ERR=$?
if [ "$ERR" = "1" ]; then echo "The test's failed as it should"; fi
if [ "$ERR" = "0" ]; then echo "The test ain't failed, unacceptable"; fi
但是,我宁愿让我的测试在内部处理“计划失败”。