c++ - 谷歌测试不打印通过/失败。异常退出
问题描述
当我运行我的 gtest 时,我得到了这个输出
[==========] Running 1 test from 1 test suite.
[----------] Global test environment set-up.
[----------] 1 test from Test
[ RUN ] Test.Foo
并在此之后退出。
我的代码如下:
//Exception file
class myex : public std::runtime_error {
myex(const std::string& reason)
: std::runtime_error(reason){
}
}
//TestFile
class Test : public testing::Test {
public:
MockClass mc; // Mock class inherits from Iclass
std::unique_ptr<classToTest> obj;
void SetUp(){
obj = std::make_unique<classToTest>(mc);
}
void bar() {
std::string error = "error";
throw myex(error);
}
}
TEST_F(Test, Bar) {
EXPECT_THROW(bar(), myex); //works. Print PASS.
}
TEST_F(Test, Foo) {
EXPECT_THROW(obj->fn(mc), myex); // doesnot work. Prints not PASS/FAIL.
}
TEST_F(Test, test1) {
obj->fn(mc); // prints : unknown file: error: (correctly prints the reason)
}
//ClassToTest file
class classToTest {
void fn(Iclass obj) {
obj.some_fn();
throw myex("Error has occurred");
}
}
我不明白为什么从 classToTest 抛出的错误被 gtest 识别为
未知文件:错误:C++ 异常...
而且,为什么它不显示 PASS/FAIl
EXPECT_THROW(fn(), myex)
但奇怪地退出了。
如果我犯了任何错误,请告诉我,如果您需要更多信息。TIA。
解决方案
推荐阅读
- kubernetes - READY 的 kubectl 输出
- java - 为什么我的 LibGDX ImageButton 只被检测到一次?
- java - 在 @Entity 类之外声明 @NamedNativeQuery 和 @SqlResultSetMapping
- excel - 通过 VBA 访问 Excel 表中的图像
- python - 在 Tensorflow GPU 中训练一个简单模型比 CPU 慢
- c# - GitLab:未找到项目:在本地运行良好,无法部署
- vba - 如何遍历从第 2 行开始的行并找出从 E 列到 AE 列的行是否为空
- python - Python 将日期格式准确转换为日期时间,其中包括 1970 年之前的日期
- c++ - 在线程之间共享公共数据元素
- r - 用于提取数字模式的正则表达式