0

我最近开始尝试为我的项目设置单元测试。但是,它不适用于类。

在为 Visual C++ 2012 编译单元测试时,我使用问题 Unresolved externals 中的说明进行了设置。

将会发生的情况是测试将开始正常,但随后会出现内存访问错误(C0000005)。不过,这并不是一直发生的。它通常每 2 或 3 次尝试就会失败,但也有可能每 20 次就会失败一次。代码中的其他函数似乎并不重要。

当我尝试调试测试时,第一次访问或使用变量时,测试将失败。

我正在尝试两种不同的测试框架,Boost.test(使用 Boost Unit Test Adapter)和 Native Unit Tests。他们俩都有同样的问题。

我知道 dll 和测试应用程序都使用相同的调用约定 (__cdecl)。

奇怪的是,测试会工作一段时间,然后突然开始失败。

该项目可在此处获得。

重新安装 Visual Studios 没有帮助。

4

1 回答 1

1

无论发生什么,几乎可以肯定,在您的代码中,很多人都成功地使用了 Visual Studio 中的 Boost.Test。与其在 Dropbox 上使用 100 多 MB 的 zip 文件,而且没有人会下载,不如尝试将您的问题简化为尽可能少的代码,以重现问题并将其发布在您的问题中。

这是一个更具建设性的答案。尝试完成我编写的关于使用 Boost.Test 和 Visual Studio 进行测试驱动开发的 5 部分教程:

您还可以查看我在 C++ Now 上介绍的研讨会!2014,其中涵盖了使用Turtle Mock库来模拟合作者。我在研讨会中将 CMake 用于构建系统,因为为该受众假设 Visual Studio 是不合理的。

完成这些示例中的一个(或两个)应该会给您足够的分步说明,您应该能够确定您在项目中做错了什么。

于 2014-08-08T21:31:58.690 回答