问题标签 [microsoft-cpp-unit-test]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
2091 浏览

visual-studio-2012 - 如何从 msbuild 脚本运行 VS2012 CppUnitTestFramework 单元测试?

我编写了一个使用 VS2012 的 CppUnitTestFramework 的本机单元测试 dll。我可以在 VS2012 的 IDE 中的测试资源管理器窗口中运行这些测试。

但是,我还想从我们的 MsBuild 脚本运行这些测试。我想我需要使用适当的命令行启动一些测试运行程序 exe,但我正在努力寻找这方面的信息。

你能帮我指出正确的方向吗?谢谢。

0 投票
2 回答
3641 浏览

c++ - C++单元测试测试,使用模板测试类

我正在做一些 C++ 测试驱动开发。我有一组类做同样的事情,例如

相同的输入给出相同的输出(或者应该,这就是我要测试的)。我正在使用 Visual Studio 2012

CppUnitTest 框架。我想创建一个模板化的测试类,所以我编写了一次测试,并且可以根据需要在类中进行模板化,但是我找不到这样做的方法。我的目标:

有没有办法使用 CppUnitTestFramework 做到这一点?

是否有另一个单元测试框架可以让我这样做?

0 投票
0 回答
294 浏览

c++ - 在 VS 2012 中编译单元测试时出错

我在 VS 2012 中定义了一个单元测试,由于错误 C2338,它不会编译。

错误 C2338:测试编写者必须为您的类 std::basic_string,class std::allocator > __cdecl Microsoft::VisualStudio::CppUnitTestFramework::ToString(const struct CoreUnitTests::TestStruct &) 定义 ToString 的特化。c:\program 文件 (x86)\microsoft visual studio 11.0\vc\unittest\include\cppunittestassert.h

在进行 Assert::AreEqual 测试时会发生这种情况。我需要为该类型定义一个 ToString 方法。

我遵循了 cppunittestassert.h 中给出的指导,并在互联网上找到了我已经放入的解决方案。但是错误仍然存​​在。

这是我正在使用的代码示例:

我显然还在做错事。有人有想法么。我已经尝试添加 TestStruct* 版本,但没有帮助。

我怀疑它可能与命名空间有关,但我不确定如何解决这个问题。

谢谢

0 投票
1 回答
1307 浏览

c++ - 无法在 CppUnitTestFramework (VS2013) 中运行测试

在与团队其他成员分开的 perforce 流上,我无法在项目上运行 CppUnitTestFramework 测试,而其他流则可以正常运行测试。

这是一个代码片段:

这是我尝试运行测试时遇到的错误:

.sln 或不同流之间的任何相关 .vcxproj 文件之间没有差异。

0 投票
1 回答
184 浏览

c++ - vs 2013:cppunittest 测试中的断点抛出异常

我正在 vs 2013 环境中测试我的 c++11 静态库。我遵循了这个不错的教程,并且测试+代码覆盖率工作正常。

现在我需要一步一步:我添加了断点并执行了“Debug Selected Test”命令,我收到以下消息:vstest.executionengine.exe 已触发断点,调用堆栈将我带到CppUnitTest.h:465(static_cast<ThisClass *>(this)->*method2)();,例如在根调用我想闯入的方法。无法查看此调用中的代码。

我的问题:如何在调试 Ms cpp 单元测试期间闯入我的代码?

0 投票
0 回答
52 浏览

c++ - CppUnitTest 卡在运行时并通过断点传递

我刚刚开始学习 CppUnitTest 框架,我遇到了最奇怪的问题。但是,当我运行我的代码(见下文)时,它只是永远卡住了 - 如果我添加断点并将其作为“逐步”运行,则测试成功完成(尽管它不会释放 DLL考试)

在过去的两天里,我试图搜索这个问题,但没有成功,我会很高兴得到任何帮助!

编辑:当我尝试调用我的任何 API 函数时,测试似乎卡住了,当我把它放在评论中时,测试也通过了常规运行。

0 投票
0 回答
196 浏览

c++ - Assert::AreEqual 为 system::clock 定义专业化

我的单元测试中有这段代码:

我得到这个错误:

我的理解是,您必须按照以下方式做一些事情:

编译器不喜欢这个RETURN_WIDE_STRING(t)部分。我该如何正确地做到这一点?

0 投票
1 回答
1191 浏览

c++ - How to set Timeout in CppUnitTestFramework (C++) in Visual Studio?

How to Add Timeout for a test method in C++ in Microsoft unit testing using CppUnitTestFramework ? Most of the Solutions I found online are for CSharp projects where I can add lines like [TEST_METHOD,TIME_OUT(80)] or such ,but those are not working while testing C++ (VC++) code

I have tried the below code

0 投票
2 回答
234 浏览

visual-studio - CppUnitTest 链接到 Windows 应用程序

我正在尝试将我的本机测试项目链接到同一解决方案中的现有项目。在#include 中,我正在编写我要测试的类的标题的路径。

当我在测试资源管理器中运行测试时,我得到构建错误:

错误 1 ​​错误 LNK2019:无法解析的外部符号“public: __thiscall DataManager::DataManager(void)”(??0DataManager@@QAE@XZ) 在函数“public: void __thiscall MyProject.Tests::UnitTest1::TestMethod1(void)”中引用" (?TestMethod1@UnitTest1@MyProjectTests@@QAEXXZ) D:\Documents\VisualStudio2013\Projects\MyProject\MyProject.Tests\DataManagerTests.obj MyProject.Tests

我发现了如何将本机测试项目链接到 .dll 项目或静态库而不是 Windows 应用程序的不同示例。

非常感谢您的帮助。

0 投票
3 回答
1330 浏览

c++ - Microsoft::VisualStudio::CppUnitTestFramework 中的参数化测试方法

我正在使用Microsoft::VisualStudio::CppUnitTestFramework为我的 C++ 项目编写一些测试用例。在这里,我有一个案例,我必须使用不同的参数运行相同的测试案例。

在 Nunit Framework for CPP 中,我可以通过以下代码实现这一点。

通过传递这些参数,该测试将运行 2 次。

在Microsoft::VisualStudio::CppUnitTestFramework单元测试中是否有类似的方法来实现这一点。

非常感谢任何帮助。