Mierzenie pokrycia kodu testami "zewnętrznymi"

1

Załóżmy, że mam kilka mikroserwisów i osobny program, który coś tam sobie klika. Czy jest możliwe odpalenie tych usług w jakiś tam magiczny sposób, zapuszczenia testsuite i zobaczenia co faktycznie zostało przetestowane?

2
piotrpo napisał(a):

Załóżmy, że mam kilka mikroserwisów i osobny program, który coś tam sobie klika. Czy jest możliwe odpalenie tych usług w jakiś tam magiczny sposób, zapuszczenia testsuite i zobaczenia co faktycznie zostało przetestowane?

Tak, wszystko zależy od technologi. Najprostszym rozwiązaniem będzie uruchomienie twojej aplikacji jako unit test w technologii natywnej do języka, który woła maina i który kończy się jak np. wyślesz jakiś unixowy sygnał do apki.

0

Technologia to Java. Rozumiem, że piszesz o czymś takim, w testowanej aplikacji:

@Test
IntegrationTest(){

startThisApplication()

executeExternalTestSuit()

stopThisApplication()
}

?

2
piotrpo napisał(a):

Technologia to Java. Rozumiem, że piszesz o czymś takim, w testowanej aplikacji:

@Test
IntegrationTest(){

startThisApplication()

executeEsternalTestSuit()

stopThisApplication()
}

?

Tak, to fajne rozwiązanie jak chcesz coś zrobić na szybko. W przypadku wielu serwisów na raz pewnie starałbym się ogarnąć to jakoś w konsoli np. za pomocą tego https://www.jacoco.org/jacoco/trunk/doc/agent.html

0
piotrpo napisał(a):

Załóżmy, że mam kilka mikroserwisów i osobny program, który coś tam sobie klika. Czy jest możliwe odpalenie tych usług w jakiś tam magiczny sposób, zapuszczenia testsuite i zobaczenia co faktycznie zostało przetestowane?

Żadne narzędzie na razie nie istnieje, które potrafi wziąć aplikacje, wziąć test suit, odpalić je, i pokazać które części zostały przetestowane, a które nie. Jeśli masz coverage np 80%, to to znaczy że 20% na pewno jest nieprzetestowane, a pozostałe 80% może jest może nie.

Jeśli chcesz faktycznie spróbować z tym walczyć, to jedynym narzędziem jakie znam do tego celu jest mutation testing, do PHP jest np biblioteka "Infection", do Javy też pewnie taka jest, tylko to w ramach oczwyiście pojedynczej aplikacji. Z mikroserwisami będzie ciężej, z uwagi na konieczny restart aplikacji po wprowadzeniu mutacji.

1 użytkowników online, w tym zalogowanych: 0, gości: 1