特此声明: 写文章不要给人留坑, 自己没验证过的东西不要抄过来发表.
Precodition:
VS2010
待测试工程 demo.dll ,被测试的工程是个dll,这个怎么写就不介绍了.
1. 在被测试工程的sln中,选择 [测试] 菜单, 选择 <新建测试> ----> <单元测试> , 确定.
确定后,会在 "解决方案资源管理器" 中生成 "Solution Items" 和 TestProject4, 第一次应该是 TestProject1, 这里p2plive 是被测试的DLL
2. 在TestProject4种 "引用" p2plive
3. include 被测试dll 的 head 文件.
属性 -----> 配置属性 -----> C/C++ ----->常规 -----> 附加包含目录 $(SolutionDir) 的相对路径
4. 编译测试工程 TestProject4
在测试文件中调用 被测试DLL的 API, 编译
出现各种错误提示,无法识别等.
选择 公共语言运行时支持(/clr) , 不能使用(/clr:safe)
5. 设置代码覆盖率
如图, 选择 数据和诊断, 双击 "代码覆盖率", 选择 p2plived.dll , "确定", 然后 "另存" , 覆盖.
在测试工程和被测试工程中 设置 /Profile, 否则无法生成 覆盖率 文件.
6 设置测试
"测试" -----> "选择活动的测试设置" -----> "Local testsetting"
"测试" -----> "窗口" -----> 测试列表编辑器
7. 运行
"测试" -----> "运行" -----> "解决方案中的所有方案"
8 察看代码覆盖率
"测试" -----> "窗口" -----> "代码覆盖率结果"
Q&A:
上述过程中有坑的地方基本上都提到了, 还有一处需要注意, 运行几次后,后提示 "无法link DefaultTest.dll, 显示这个应该是被测试工程的, 不知道为什么会突然没有了。
不知道如何解决, 只能 删除 测试工程, 重新创建一个。