我有一个应用程序,其中存在大量代码,其中包含许多非隔离组件。这使得在进行一些单元测试方面变得困难。因此,除了在他们自己的独立测试DLL中的一些单元测试之外,我还尝试在应用程序DLL中创建一些测试。通常从应用程序EXE调用应用程序DLL。
对于某些背景知识,此代码使用原生C ++编写,已有20多年的历史。我无法直接在DLL中执行测试,因为框架未设置,因此在DLL中执行的任何调用都无法正确执行。我已经尝试过这样做但没有成功,但也许我需要对MFC框架有更基本的了解才能做到这一点。
一位同事建议也许可能让vstest.console
以某种方式通过可以启动框架的EXE运行测试,通过EXE运行测试,然后转发到DLL,然后通过EXE将测试结果返回到vstest.console
,从而有效地使EXE成为各种代理。
我认为这可能是一个远景,但我不知道如何正确运行DLL中的测试。可以吗?有没有更好的办法?
答案 0 :(得分:0)
对于旧版EXE,您可以使用通用测试(用于控制台应用)或编码用户界面测试(用于GUI应用)。从技术上讲,通用测试或编码UI测试是系统级测试。您仍然可以获得两个测试的代码覆盖率。
使用通用测试来包装控制台应用程序或测试线束控制台
•从命令行运行
•返回错误代码:0< - Pass;非零< - 失败
•仅针对控制台应用程序的正面测试;测试工具可能包括负面测试。
Visual Studio像其他测试一样处理通用测试,但
•将通用测试添加到单元测试项目类型
•命令行必须运行.GenericTest文件而不是UnitTest1.dll
•vstest.console GenericTest1.GenericTest
注意:为EXE设置足够长的“运行持续时间”。