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. –
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