2016-04-13 7 views
0

Я установил OpenCover через nuget.Код Покрытие теста на селен

Это линия я бегу из моего командования Prompt

C:\myapp\Main\packages\OpenCover.4.6.519\tools\OpenCover.Console.exe -target:"C:\Program Files (x86)\NUnit 2.6.4\bin\nunit-console.exe" -register:user -targetargs:"C:\myapp\Main\myapp.SeleniumTests\bin\Debug\myapp.seleniumTests.dll /result=c:\TestRunner\SeleniumResults.xml /include:Single" 

Я могу видеть, что тест работает, потому что FireFox открывает и проходит через все necesary шаги. но как только его сделали я получаю «0 Классы неоднократно бывал на 309»

Я попытался добавить

-searchdirs:"C:\myApp\Main\MainWebProject\bin" 

, но все-таки возвращается, без покрытия.

Что мне не хватает?

+0

ли вы писать какие-либо тесты для вашей «Seleni um тесты "? OpenCover рассматривает «myapp.seleniumTests.dll» в качестве тестируемого приложения. – SiKing

ответ

1

OpenCover обеспечивает только покрытие сборок .net, которые загружаются и выполняются целевым процессом и являются его дочерними процессами.

Я подозреваю, что ваше веб-приложение не работает в этом контексте, и, несмотря на то, что ваши тесты запущены, OpenCover на самом деле не профилирует этот код. Поэтому вам нужно запустить веб-приложение в том же контексте - я рекомендую использовать iisexpress для этого.

Теперь вы можете подумать о сборках тестов, и почему бы вам не получить покрытие этих сборок, лучше попробовать использовать опцию/noshadow с помощью nunit-console.

+0

Есть ли инструкции по использованию iisExpress для запуска моего веб-приложения в том же контексте? Я просматриваю предоставленные документы и нет четкого раздела для iisExpress – NicoTek

+0

ok Я нашел бит и куски из других сообщений и смог заставить его работать. будет опубликовать полный сценарий после его полной работы. Благодаря! – NicoTek

+0

Я бы, вероятно, использовал Process.Start как часть тестовой установки или, возможно, использовал пакетный скрипт для запуска iisexpress, а затем nunit и получить OpenCover для запуска пакетного скрипта. –

0

Хорошо, я смог заставить его работать. Очень важно, что Visual Studio закрыт, если не будет иметь проблемы с регистрирующим сайтом от IIS Express

первым в консоли я иду

cd c:\MyApp\Main\MainWebProject\Bin 

сценарий вышел:

C:\MyApp\Main\packages\OpenCover.4.6.519\tools\OpenCover.Console.exe -target:"C:\Users\Me\Desktop\TestRunnerWithServer.bat" -register:user -searchdirs:"C:\MyApp\Main\MainWebProject\bin" 

файл «TestRunnerWithServer.bat» имеет следующие шаги

del "C:\TestRunner\TestResults.xml" 
del "c:\TestRunner\SeleniumResults.xml" 

call "C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\vcvarsall.bat" x86 

rem go to the folder of the project with the unit tests 
CD C:\MyApp\Main\MyTestsProject\bin\Debug 

rem Run Unit Tests 
MStest /testcontainer:MyTestsProject.dll /resultsfile:C:\TestRunner\TestResults.xml 

rem now start IIS Express in a different window 
cd C:\Program Files (x86)\IIS Express\ 
start iisexpress.exe /site:MainWebProject /config:C:\MyApp\Main\.vs\config\applicationhost.config 

CD C:\Program Files (x86)\NUnit 2.6.4\bin 

rem Run Selenium Tests 
nunit-console C:\MyApp\Main\MyApp.SeleniumTests\bin\Debug\MyApp.seleniumTests.dll /result=c:\TestRunner\SeleniumResults.xml /noshadow 

rem Close IISExpress 
taskkill /IM iisexpress.exe