- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想用 gtest 测试断言。该方法如下所示:
void aMethod()
{
Q_ASSERT( 1 == geode.getNumDrawables());
DoSomeOtherStuff
}
测试看起来像这样:
TEST_F(aTestClassDeathTest, aTestName)
{
::testing::FLAGS_gtest_death test_style = "threadsafe";
ASSERT_DEATH({ aMethod;}, "1 == geode.getNumDrawables");
}
这个测试在 linux 下用 gcc 工作得很好。
但是这个在windows下visual studio 2010测试有问题。
当我运行测试时,会打开一个错误窗口。它显示断言失败。当我关闭窗口时,所有测试都完成了。没有测试失败。
我认为 gtests 启动了一个导致断言失败的新进程并评估进程输出。这有效并且测试通过。
但是当 visual studio 注意到新进程失败时,它会创建错误窗口。
如何抑制错误窗口?
最佳答案
弹出窗口是由于Qt,而不是gtest。 Q_ASSERT
宏正在调用 CRT 调试窗口。
您可以将Q_ASSERT
替换为assert
或者您可以使用QtMsgHandler
抑制弹出窗口。
关于c++ - Googletest - DeathTest 不捕获来自 Qt 应用程序的断言,例如 Q_ASSERT 等。,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10317589/
我需要确保传递给我的构造函数的某个指针不是NULL。通常我只是在函数的开头放置一个 Q_ASSERT(),如下所示: void Class::doStuff( Object *object ) {
我找不到关于发布版本下 Q_ASSERT 语义的明确声明。如果没有断言检查,那么是否对断言表达式进行求值? 考虑以下代码 Q_ASSERT(do_something_report_false_if_f
这个问题在这里已经有了答案: Q_ASSERT release build semantics (2 个答案) 关闭 9 年前。 根据设计,Q_ASSERT 不会导致应用程序在 Release模式下
我正在使用 QVector在很多源文件中。当我运行程序时出现错误: ASSERT failure in QVector::operator[]: "index out of range", file
我有一个Q_ASSERT(): Q_ASSERT(QString("%1").arg(0) != "0"); 当它失败时,它显示一个中止/重试/忽略消息框,但在文本中它说: File: f:\dd\v
我在类方法中有这个简单的代码(使用 std::map 作为各种数据的容器): try { commonHeader->version = options.at("M3UA version"
我想用 gtest 测试断言。该方法如下所示: void aMethod() { Q_ASSERT( 1 == geode.getNumDrawables()); DoSomeOthe
这似乎是一个错误,因为在 Qt Creator 上,Q_ASSERT(false) 导致我的应用程序退出,即使文档说它应该允许您中断断言: On Windows, for debug builds,
我是一名优秀的程序员,十分优秀!