Nie mogę zrozumieć, w jaki sposób Cobertura współpracuje z JUnit. Jak zrozumiałem, cobertura modyfikuje skompilowany kod bajtu i wstawia w tym kodzie bajtowym swoje własne polecenia. Ok. Następnie uruchamiamy framework Junit i uruchamiamy testy. Czy ktokolwiek mógłby wyjaśnić, w jakich punktach cobertura otrzymuje informacje, które z jego poleceń zostały wykonane?Jak działa Cobertura z JUnit?
Odpowiedz
Firma Cobertura używa ASM, która służy do manipulacji i analizy ogólnego kodu bajtowego. W każdym wierszu kodu Java są dodawane 3 wiersze do istniejących klas, aby policzyć rzeczy w raporcie, który generuje. Gdy Cobertura znajdzie się w Twojej ścieżce klas i zostanie poprawnie skonfigurowany, a wykonasz testy jednostkowe, wygeneruje plik danych o nazwie cobertura.ser, który jest używany do tworzenia raportów xml lub html.
Podstawowe użycie: z Maven: http://www.mojohaus.org/cobertura-maven-plugin/usage.html
Cobertura monitoruje testy przez instrumentacji kodu bajtowego z dodatkowych sprawozdań do logowania, które linie są i nie są osiągnięte jako zestaw testów wykonuje.
Firma Cobertura oblicza zasięg zarówno liczby testowanych linii, jak i liczby badanych gałęzi. W przypadku pierwszego przejścia różnica między tymi dwoma elementami nie ma większego znaczenia. Cobertura oblicza również średnią cykliczną złożoność McCabe'a dla klasy.
przypadku korzystania Maven może być skonfigurowany w POM:
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>cobertura-maven-plugin</artifactId>
<version>2.6</version>
<configuration>
<formats>
<format>html</format>
<format>xml</format>
</formats>
</configuration>
</plugin>
przypadku korzystania ANT może być skonfigurowany ze stwierdzeniem zawartym w pliku build.xml taskdef
:
<taskdef classpathref="cobertura.classpath" resource="tasks.properties"/>
Odniesienia ant- integracja cobertura można znaleźć pod adresem https://github.com/cobertura/cobertura/wiki/Ant-Task-Reference
Dziękuję za odpowiedź. Jednak nie chodzi o to, jak prowadzić koberturę z mavenem lub mrówką. Pytanie brzmi, w jaki sposób cobertura współpracuje z junit. –
- 1. Jak działa Junit @Rule?
- 2. Jak działa assumeTrue() w JUnit
- 3. hudson cobertura zgłoszenie 0
- 4. JUnit dziedziczenie testowe nie działa
- 5. Java Thread.currentThread(). SetUncaughtExceptionHandler() nie działa z JUNIT?
- 6. cobertura w eclipse
- 7. cobertura vs koniczyna
- 8. cobertura-maven-plugin z Javą 8
- 9. Maven Cobertura OutOfMemoryError
- 10. Spring @ Transactional nie działa w teście JUnit?
- 11. Dlaczego JUnit 4 na Androidzie nie działa?
- 12. Nie można debugować kodu Mockito/JUnit w środowisku Eclipse, działa dobrze tylko z JUnit
- 13. jak JUnit test IntentService
- 14. Jak uruchomić Junit TestSuites z gradle?
- 15. Jak przetestować ConfigurationProperties na wiosnę z JUnit?
- 16. Jak uruchomić JMH z wewnętrznych testów JUnit?
- 17. cobertura na maven multi module project
- 18. cobertura-maven-plugin nie obejmuje konfiguracji
- 19. rejestrowanie testu Natychmiastowe JUnit z <junit> Ant zadanie
- 20. Jak uzyskać wersję JUnit
- 21. Jak JUnit przetestować iteracyjnej
- 22. Nie można zarejestrować rozszerzenia org.sonar.plugins.cobertura.CoberturaSensor z wtyczki 'cobertura'
- 23. Scala, sbt i emma lub Cobertura
- 24. Katalog danych testowych z jUnit
- 25. Testowanie jednostek powoli z Coberturą
- 26. Wyklucz metody z zakresu kodu za pomocą Cobertura
- 27. Jak przetestować metodę z typem powrotu typu Boolean w Javie z JUnit
- 28. Projekt Gradle działa jUnit 5 testów w IntelliJ
- 29. jak obsługiwać wyjątki w junit
- 30. Najnowsza wersja cucumber-java i cucumber-junit nie działa
Dziękuję za odpowiedź. Jednak nie rozumiem - uruchamiamy junit nie cobertura. W jaki sposób z tych 3 linii od dodanych raportów kodowych są generowane? Czy każdy z tego 3 liniowego kodu pisze do cobertura.ser? –
Cobertura jest automatycznie oprzyrządowana po uruchomieniu testów jednostkowych. Jest to rodzaj oblewania rzeczy, która dzieje się automatycznie, gdy masz ją skonfigurowaną w pliku POM (jeśli korzystasz z Mavena) lub pliku build.xml (jeśli używasz ANT). Nie uruchamiasz go bezpośrednio, ale jest on wywoływany za pośrednictwem wtyczki Maven, gdy jest poprawnie skonfigurowany. HTH – Griff