我有一个MVC Web应用程序,其关联的控制器测试按照正常情况在TFS构建下运行。
我可以看到测试正在运行并传入构建日志,它们出现在构建的“任何CPU /发布的结果详细信息”部分中
我还有许多其他程序集以及在同一版本中运行的相关测试。测试正在通过,详细信息显示在结果和日志中。
我在构建脚本和testrunconfig中启用了代码覆盖 除了Web应用程序之外,所有程序集都会出现覆盖范围,即使它已经为它运行了测试。
我有什么明显的错过或者我需要做的某种工作吗? 我已经搜索了一会儿,但没有找到答案。
是否有人使用TFS为MVC Web应用程序提供代码覆盖率?
答案 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)