硒测试的代码覆盖率



我已经通过nuget安装了OpenCover。

这是我从命令提示符运行的行

C:myappMainpackagesOpenCover.4.6.519toolsOpenCover.Console.exe -target:"C:Program Files (x86)NUnit 2.6.4binnunit-console.exe" -register:user -targetargs:"C:myappMainmyapp.SeleniumTestsbinDebugmyapp.seleniumTests.dll /result=c:TestRunnerSeleniumResults.xml /include:Single"

我可以看到,测试之所以运行,是因为FireFox打开了它,它完成了所有必要的步骤。但一旦它完成,我得到了"访问类309"

我已经尝试添加

-searchdirs:"C:myAppMainMainWebProjectbin"

但它仍然没有得到任何报道。

我错过了什么?

OpenCover只提供由目标进程及其子进程加载和执行的.net程序集的覆盖范围。

我怀疑您的web应用程序没有在该上下文中运行,因此,即使您的测试正在运行OpenCover,它实际上也没有分析该代码。因此,您需要在相同的上下文中运行您的web应用程序——我建议使用iisexpress。

现在您可能正在考虑测试程序集,为什么没有很好地覆盖这些程序集?应该尝试在nunit控制台中使用/noshadow选项。

好的,我可以让它运行了。关闭Visual Studio是很重要的,否则它将无法从iis-express 注册网站

首先在控制台中,我转到

cd c:MyAppMainMainWebProjectBin

脚本出来了:

C:MyAppMainpackagesOpenCover.4.6.519toolsOpenCover.Console.exe -target:"C:UsersMeDesktopTestRunnerWithServer.bat" -register:user -searchdirs:"C:MyAppMainMainWebProjectbin"

文件"TestRunnerWithServer.bat"包含以下步骤

del "C:TestRunnerTestResults.xml"
del "c:TestRunnerSeleniumResults.xml"
call "C:Program Files (x86)Microsoft Visual Studio 10.0VCvcvarsall.bat" x86
rem go to the folder of the project with the unit tests
CD C:MyAppMainMyTestsProjectbinDebug
rem Run Unit Tests
MStest /testcontainer:MyTestsProject.dll /resultsfile:C:TestRunnerTestResults.xml
rem now start IIS Express in a different window
cd C:Program Files (x86)IIS Express
start iisexpress.exe /site:MainWebProject /config:C:MyAppMain.vsconfigapplicationhost.config
CD C:Program Files (x86)NUnit 2.6.4bin
rem Run Selenium Tests
nunit-console C:MyAppMainMyApp.SeleniumTestsbinDebugMyApp.seleniumTests.dll /result=c:TestRunnerSeleniumResults.xml /noshadow
rem Close IISExpress
taskkill /IM iisexpress.exe

相关内容

  • 没有找到相关文章

最新更新