2010-05-12 55 views
1

我有一个MVC Web应用程序,其中包含按照正常情况在TFS构建下运行的相关控制器测试。Web应用程序(MVC)程序集不工作的TFS和代码覆盖率

我可以看到测试运行,并通过在构建日志和他们构建的部分出现在“/发布详细结果所有CPU”

我也有许多与相关测试其他组件,其在同一个版本中运行。测试通过,结果中显示的细节和日志很好。

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

有没有什么明显的,我错过了或某种工作,我需要做什么? 我搜索了一段时间,还没有找到答案。

有没有人有使用TFS的MVC Web应用程序的代码覆盖?

+0

我遇到同样的问题。问题似乎是程序集被放到CodeCoverage不理解的名为_PublishedWebSites的文件夹中。我见过som hacks手动更改测试设置(XML编辑器),但它们似乎不可靠。 – Kimoz 2010-05-23 19:44:20

回答

2

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

看着文本编辑器中localrun.testconfig我看到的是其中包含的代码覆盖数据的组件是在下面的部分

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

到web项目的唯一参考是部分:

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

因此,要获得代码覆盖率在TFS工作:
在VS IDE,双击localrun.testconfig,然后单击代码覆盖范围,然后通过单击添加程序集...按钮手动添加MVC程序集。你会得到一个关于重复装配的警告信息,告诉它使用这个新文件。

这确实在localrun.testconfig幕后有什么补充与MVC组件CodeCoverageItem 项,并从该文件中的代码覆盖率部分ASPNET部分。

这还有一个好处,就是每次运行测试时都不启动本地Web服务器。

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

相关问题