是否可以将MS单元测试从EXE转发到DLL
Would it be possible to forward MS Unit tests from an EXE to a DLL?
我有一个应用程序,其中有一堆代码,其中包含一堆非隔离组件。这使得进行一些单元测试变得困难。因此,除了在它们自己的单独测试DLL中进行一些单元测试外,我还试图在应用程序DLL中创建一些测试。应用程序DLL通常从应用程序EXE调用。
出于某种背景,这段代码已经用原生C++编写了20多年。我无法直接执行DLL中的测试,因为框架没有设置,所以在DLL中执行的任何调用都不会正确执行。我已经尝试过这样做,但没有成功,但也许我需要对MFC框架有更基本的了解才能做到这一点。
一位同事建议,也许可以让vstest.console
以某种方式通过EXE运行测试,在那里可以启动框架,通过EXE运行这些测试,然后将其转发到DLL,然后通过EXE将测试结果返回到vstest.console
,从而有效地使EXE成为某种代理。
我想这可能是一个漫长的过程,但我不知道如何在DLL中正确运行测试。能做到吗?有更好的方法吗?
对于遗留EXE,您可以使用Generic Test(用于控制台应用程序)或Coded UI Test(用于GUI应用程序)。从技术上讲,通用测试或编码UI测试是系统级测试。您仍然可以获得这两个测试的代码覆盖率。
关于通用测试的更多信息
使用通用测试包装控制台应用程序或测试的控制台
•从命令行运行
•返回错误代码:0<-通过非零<-失败
•仅针对控制台应用程序的阳性测试;测试线束中可能包含阴性测试。
Visual Studio像对待其他测试一样对待通用测试,但是
•将通用测试添加到单元测试项目类型中
•命令行必须运行.GenericTest文件,而不是UnitTest1.dll
•vstest.console GenericTest1.GenericTest
注意:为EXE设置足够长的"运行持续时间"
- 为cl.exe(Visual Studio代码)指定命令行C++版本
- 终端不会为C++文件创建.exe文件吗
- 在Windows中以.exe的形式运行c++
- 正在折叠转发引用
- Visual Studio mkl_link_tool.exe链接错误
- PrintWindow函数在notepad.exe中出错
- VSCode C++ 编译的exe感染了Win32:TrojanX-gen[Trj]
- 将返回值从 exe 传递到 bat,并将其传递给 C# 中的进程
- 获取当前正在运行的 exe 名称(不是路径)
- 从 exe 文件 (Visual Studio ) 启动时调试断言失败
- 1d.exe找不到SFML文件?
- VI工作室代码错误无法打开输出文件主.exe
- 如何为每个客户生成自定义 exe
- 将函数参数完美转发到函数指针:按值传递呢?
- 使用参数在 C# 的C++上运行.exe
- 在 ******.exe 中0x00000000772CA267 (ntdll.dll) 处未处理的异常:0xC0000
- 如何在Visual Studio Code中重命名我的a.exe文件?
- 转发变量参数列表以模拟 std::thread
- 解析引用 |exe/dll vs lib
- 是否可以将MS单元测试从EXE转发到DLL