gpt4 book ai didi

visual-studio - VS2008 : Unit Testing with Code Coverage doesn't work with/CLR

转载 作者:行者123 更新时间:2023-12-01 01:41:52 24 4
gpt4 key购买 nike

我正在尝试在 VS2008 中设置具有代码覆盖率的单元测试,用于使用 /clr(不是/clr:safe 或/clr:pure - 它编译的 C++/CLI DLL必须是/clr,因为它使用 MFC)。

单元测试工作完美,但覆盖率信息仅在我使用/clr:safe 或/clr:pure 编译时才有效。对于/clr,代码覆盖率结果 窗口显示以下消息:

Empty results generated: none of the instrumented binary was used. Look at test run details for any instrumentation problems.

我也尝试过“going offroad”,但是当我将覆盖率文件加载到 VS 中时,它也包含空结果。

令人恼火的是,我找不到任何地方专门说明代码覆盖率是否适用于/CLR,所以我只好自己尝试一下。

如果它应该工作,任何人都可以看到我在这里做错了什么吗?


[文件]->[新建]->[项目]
选择Class Library,输入MyProj作为项目名称,点击OK

右击MyProj项目,选择[属性]
选择【配置属性】->【通用】
确保“公共(public)语言运行时支持”设置为 /CLR

将此代码添加到 Class1:

public:
static int calc() { return 69; }

构建解决方案

[测试]->[新建测试]->[单元测试],点击确定,点击创建

将此代码添加到TestMethod1:

Assert::AreEqual(MyProj::Class1::calc(), 69);

右键单击 TestProject1 项目,选择 [References]
点击“添加新引用”
在“项目”选项卡中选择MyProj,单击“确定”,再次单击“确定”

[测试]->[编辑测试运行配置]->[本地测试运行]
选择【代码覆盖率】
选中MyProj.dll,点击应用,点击关闭

[测试]->[运行]->[解决方案中的所有测试]

测试结果窗口显示 TestMethod1 已通过。
代码覆盖率结果 窗口显示以下消息:

Empty results generated: none of the instrumented binary was used. Look at test run details for any instrumentation problems.


右击MyProj项目,选择[属性]
选择【配置属性】->【通用】
将“Common Language Runtime support”更改为/CLR:SAFE/CLR:PURE,点击OK

构建解决方案

[测试]->[运行]->[解决方案中的所有测试]

测试结果窗口显示 TestMethod1 已通过。
代码覆盖率结果窗口现在显示正确的覆盖率信息。

最佳答案

基于 http://msdn.microsoft.com/en-us/library/ms182534.aspx

1-项目必须处于调试状态

2.-在项目属性中,您必须选择 x 86 平台。

3 在GAC中注销正在测试的项目。

关于visual-studio - VS2008 : Unit Testing with Code Coverage doesn't work with/CLR,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/700736/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com