在谷歌测试中,如果断言失败,是否有一种方法可以将测试标记为已跳过?
例如
ASSERT_TRUE(1 != 1)
所以如果上面的语句失败了,我可以在 gtest 中添加一些东西来将测试标记为跳过而不是失败吗?
据我所知。可能是有充分理由的,因为只有在遇到失败时才“跳过”测试看起来有点作弊!如果您知道测试在运行之前会失败,那么您可以通过在测试名称前加上DISABLED_
来
暂时禁用它。
这似乎是一个更好的选择,因为测试代码仍然会被编译,但套件的整体结果不受影响,因为测试没有运行。输出会提醒您有多少已禁用的测试,如果需要,您始终可以使用
--gtest_also_run_disabled_tests
arg 强制运行已禁用的测试。
顺便说一句,gtest 提供了显式导致测试失败的方法,而不是做
ASSERT_TRUE(1 != 1)
.
GTEST_SKIP
可用于在执行期间标记测试。
例如:
TEST(SkipTest, DoesSkip) {
GTEST_SKIP() << "Skipping single test";
EXPECT_EQ(0, 1); // Won't fail; it won't be executed
}