Web应用程序(MVC)程序集的TFS和代码覆盖率不起作用

时间:2010-05-12 00:36:16

标签: asp.net-mvc tfs mstest code-coverage

我有一个MVC Web应用程序,其关联的控制器测试按照正常情况在TFS构建下运行。

我可以看到测试正在运行并传入构建日志,它们出现在构建的“任何CPU /发布的结果详细信息”部分中

我还有许多其他程序集以及在同一版本中运行的相关测试。测试正在通过,详细信息显示在结果和日志中。

我在构建脚本和testrunco​​nfig中启用了代码覆盖 除了Web应用程序之外,所有程序集都会出现覆盖范围,即使它已经为它运行了测试。

我有什么明显的错过或者我需要做的某种工作吗? 我已经搜索了一会儿,但没有找到答案。

是否有人使用TFS为MVC Web应用程序提供代码覆盖率?

2 个答案:

答案 0 :(得分:2)

在阅读之前发布的文章后,我想我会尝试另一种方法。

在文本编辑器中查看localrun.testconfig我看到包含代码覆盖率数据的程序集在下面的部分中

<Regular> <CodeCoverageItem ... /> <CodeCoverageItem ... /> </Regular>

对Web项目的唯一引用是在以下部分中:

<AspNet> <AspNetCodeCoverageItem id="..." name="..." applicationRoot="/" url="http://localhost:0/" /> </AspNet>

因此,要在TFS中使用代码覆盖率:
在VS IDE中,双击 localrun.testconfig ,然后单击代码覆盖率,然后通过单击添加程序集... 按钮。您将收到有关重复程序集的警告消息,告诉它使用此新文件。

localrun.testconfig中的幕后操作是添加 CodeCoverageItem 使用MVC程序集输入,并从文件的CodeCoverage部分删除 AspNet 部分。

这样做的另一个好处是每次运行测试时都不启动本地Web服务器。

但它可能对任何Watin型测试和覆盖范围产生不利影响。

答案 1 :(得分:1)