Компонентно тестване примери + Code coverage tool


12

Пускам нещата, за които си говорихме на лекцията вчера. 

В примерите има тестове с MSTest, MSTest v2 както и с NUnit.
За MSTest видяхте, че параметризираните тестове стават малко гадно, но ако все пак решите можете да се ориентирате там. Ако имате въпроси ще отговаряме. 
ПРИМЕРИ

Колкото до Code Coverage пускам двата файла които са ви нужни. 
Във файла runtests.bat трябва да промените името на .dll файла който таргетирате. И все пак да внимавате за версията на NUnit.ConsoleRunner.
В другия файл reports.bat само внимавайте за версиите. 
В момента пътищата са направени релативни и трябва двата файла да се сложат в bin/Debug папката. Ако решите може да ги преместите, но трябва да сменяте и пътищата.

Стартирате само файла reports.bat и ще имате генерирани репорти в папка coverage.

ФАЙЛОВЕ

За Code Coverage ще ви трябват някоко пакета. OpenCover, NUnit, NUnit.Runners, ReportGenerator. Всичките се свалят чрез nuget мениджъра.




Отговори



0
Това за Visual studio Code дали важи, и така и не ми е  ясно защо и тук трябва да се регистрирам за да си изтегля и сложа Code Coverage, след това nuget мениджъра за Visual studio Code къде е.



4
Само да попитам лекциите ще се качват ли в системата?

от ivan.mihov1 (4988 точки)


2
В YouTube ги има -> тук .

от suzunov (321 точки)

0
Мда, гледам че вече са качени и в системата. А да попитам линковете за домашните още не са добавени или...?

от ivan.mihov1 (4988 точки)



1
Аз искам помощ как мога да правя компонентно тестване точно за Visual studio Code



0
през външен nunit, може би 2.х с графичния му интерфейс, като предположение.

от todorovh (2055 точки)


11

Колеги, мисля, че има начин Open Cover UI, да се стартира или поне в момента работи под някаква форма на моето РС. Ако искате може да тествате. 

1. Отивате на този линк и сваляте -> opencover.4.6.519.msi .
  1а. Инсталирате го и запомнете инсталационната папка.

2. Отивате на този линк и сваляте -> OpenCover UI.
  2а. Инсталирате.

3. Пускате VS и зареждате проект в който има направени unit tests.

4. В менюто вече трябва да имате Open Cover. Отидете на него и изберете Open Cover Test Explorer. Tрябва да ви излезе прозорец с тест проектът. Натиснете на "+" за да ви се покажат unit тестовете, които сте направили. Изберете един и натиснете десен бутон върху него. Ще ви излезе надпис "Open with OpenCover", изберете го. Първоначално трябва да ви изгърми и след това да ви накара да му покажете пътят до OpenCover.exe. Тук се намесва "1а", отидете в папката в която инсталирахте Open Cover и изберете exe-тo.

5. След като направите тези стъпки, би трябвало да работи. Ето и снимка с крайният резултат .

Пишете дали сте имали успех :)


от Galvaneyes (415 точки)


1
Супер и при мен работи :D

от suzunov (321 точки)

2

само, че се справя само с MS тестовете, но нищо не се случва с NUnit3..или поне при мен рънва тестовете, но без резултат. Ако накой знае как да се изкарат резултатите без ReportGenerator-a , моля да сподели.

Иначе OpenCoverUI има доста яката функционалност да показва буквално кой ред код е тестван и кой не и заради това доста ме кефи :) но не тръгва с nunit.


от pdimova (256 точки)


0

И при мене работи :) но имам въпрос например при името на Student ми показва че този код:

get 

{
      return this.name;
}

не е Кавърнат обаче има тест който е:

public void Student_TestName_ShouldNameCorrectly()
{
        string name = "Ivan";

       Student student = new Student(name);

       Assert.AreEqual(name, student.Name);
}

и този тест би трябвало да го кавърне и показва ми, че имам 36% кавър обаче на всичките места на които ми показва, че нямам кавър аз имам тестове които ги тестват.

Може ли да ми кажете къде бъркам или дали проблема е в програмката?

Благодаря предварително ! :)


от Merhatt (1406 точки)


1
Хм...как ти изглежда класът Student. Понеже туко-що го изстествах с клас Student, който е само с property Name и с твоят тест е 100/100 (снимка). Предполагам имаш допълнителна логика в класът и заради това не ти дава, че си покрил всичко от него. Ако погледеш в менюто което програмата предоставя може да видиш, че ти показва къде нещо е покрито и къде не(снимка).
*ако искаш метни един pastebin с кодът да видя, дали и при мен, ще даде същите резултати. 

от Galvaneyes (415 точки)