我不想在使用boost库进行测试时访问冲突时停止测试

时间:2010-11-17 03:09:02

标签: c++ unit-testing boost boost-test

使用boost测试库在单元测试中发生访问冲突时。

然后,测试中止,并完成。

但是,我不想停止单元测试。我想要获得例外或通知。

我该怎么做?

谢谢你,请低估我的傻瓜英语(8(|)

EDIT!

访问冲突错误不在测试程序中。它在目标程序中(待测试)。

例如,

目标计划

int target_function()
{
  char *source;

  strcpy(source, "access violation");

  return 0;
}

测试程序

BOOST_AUTO_TEST_CASE(access_violation)
{
  target_function();
  BOOST_CHECK(false);
}

EDIT !!!

我在windows系统中使用visual studio 2005,在linux系统中使用g ++。

EDIT !!! 我理解你的意见。但是,我不是目标程序程序员。所以,我无法修复它们。 我只想继续我的测试计划。我做了很多测试用例。所以。每当我的测试程序遇到任何错误时,都会传递该错误并继续。

2 个答案:

答案 0 :(得分:2)

当您遇到访问冲突时,整个流程的完整性会受到影响。没有理智的方法可以从这种状况中恢复过来;因此没有理智的方式来继续测试。当这个过程破坏了自己的时候,无论单元测试框架是否愿意,这个过程都会失败。

答案 1 :(得分:1)

我认为用于尝试捕获访问冲突的方法是实现定义的。但是,无论如何,这都是一个坏主意。如果您的程序崩溃并烧毁,您最好还是中止测试过程,并在继续之前解决问题。