Maven integracio - mvn test-re futtatni dependency-t

Fórumok

Van egy pet-projectem, egy Rest API test framework-ot kezdtem el irni. Jelenleg meg elegge PoC allapotban van, emiatt is kernek segitseget.

A lepes ahol elakadtam, az az, hogy hogy lehet megoldani hasonlo mukodest mint JUnit eseteben. Azaz, ha van egy projectem, dependency-kent beteszem a test-frameworkot, akkor az fusson le mvn test-re, illetve failelje is el, ha van valami nyugje.

Mavent eddig csak felhasznalokent hasznaltam, szoval fogalmam sincs hogy is kellene nekiallni ennek. Mire keressek, merrefele nezelodjek? Google ugyan segitett, de nem a megfelelo mertekben.

Edit:

ugyanitt keresek megoldast sajat goal letrehozasara :)

Hozzászólások

Nem biztos, hogy jól értem a kérdést (lehet, teljesen másra válaszolok), meg nem vagyok egy maven profi, de:

Nekem a napokban olyat kellett csinálnom, hogy a compile alatt bizonyos stringeket kigyűjteni a forrásfájlokból. Erre csináltam egy saját plugint (google://Maven Mojo), s ezzel elérem, hogy vannak saját goaljaim. S ezek után, tudok valami ilyesmit mondani:


<plugin>
    <groupId>groupid</groupId>
    <artifactId>maven-plugin</artifactId>
    <version>0.0.1</version>
    <configuration>
        ...
    </configuration>
    <executions>
        <execution>
            <id>random-id</id>
            <phase>default goal, amikor le akarom futtatni a saját pluginem</phase>
            <goals>
                <goal>pluginem goalja</goal>
            </goals>
        </execution>
    </executions>
</plugin>

Én még ilyenek felé tapogatóznék, hogy JUnit Runnert írnék. Esetleg a frameworköd által használt teszteket integration testnek megjelölni, s utána a maven-failsafe-pluginnal futtatni.
--
blogom

Ha klasszikus Maven projektet csinálsz, akkor annak eleve van egy teszt forrás-foldere. Ha ide teszel JUnit teszteket, akkor az automatikusan lefut a projekt teszjeként. Annyit kell konfigurálni, hogy a pom.xml-ben a teszthez külön fel kell venni a JUnit-ot függőségként (mivel a program "java" részének általában nem függősége a JUnit). Pl itt van, hogy hogy lehet scope-hoz tartozó dependencyt felvenni: http://books.sonatype.com/mvnex-book/reference/customizing-sect-test-sc…

A végrehajtás tudtommal automatikus, semmi pluszt nem kell beállítani hozzá.

Itt a problema az, hogy nem tesztet, hanem test frameworkot akarnek irni :)

A teszt resze mar mukodik, most johet a maradek, pepecselos melo.

Szerk: ugyan paran mar emlegettek a kornyezetemben, hogy JUnit runnert kene irnom, de en nem teljes mertekben latom at, hogy az hogy segitene a helyzetemen. Viszont a build mar torik failed teszt eseten, szoval valoszinuleg nem letfontossagu a JUnit runner irany.

A JUnit Runneres szálra: milyen formában írod most a teszteket? Én valahol ott húznám meg a határt, hogyha:
- Java (vagy valamilyen JVMre forduló nyelven) van írva a teszt fő része, akkor ott felhasználói oldalról is a JUnit Runner a kényelmesebb,
- ha nem Java, akkor bizony plugin.

A JUnit Runner annyiból egyszerűbb, hogy azt megírod, s utána bármilyen build környezetben, ahol Java fordul, a kódod is működni fog. Egy plugin esetén ha te azt csak mavenre írtad meg, akkor nem fogom Gradle-lel, vagy Anttal használni. (Bármennyire is megpróbálod a build rendszertől függetlenül megírni at eszköz logikai részét, akkor is rá kell igazítani a build folyamatra...).

Ha azt akarod, hogy másképp nézzen ki a teszt (scalatest, kotlintest), húzzunk köré egy környezetet (spring-test, arquillian), az általában egy junit runner. De pl. automata frontend-tesztelésre én mostanság casperJS-t használok (js-ben megírt teszt, teljes weboldal elindítása, headless browser, hajrá!), az már plugin. De a Seleniumhoz mintha lenne JUnit runner (Javaban megírt teszt, a többi kb. ugyanaz).

tl;dr - ha a teszt kódot Javaban írod, én futnék egy kört a JUnit Runner témával, hátha.
--
blogom

https://github.com/havesomerest

Az otlet az lenne, hogy ne kelljen kodot irni microservice / rest api tesztelese / regression tesztelese eseten, hanem black box teszt szeruen, JSON / XML-ben leirva -> ilyen requestre, ilyen response-t varok, hogy hogy oldja meg belul, az legyen az o baja.

Foleg abbol indultam ki, hogy magamat ismerve, prototyping kozben baromira utalok tesztet irni, viszont a manualis teszt pont JSON / XML kuldozgetest jelent, akkor miert ne automatizaljuk a manualis tesztet? Meg sok-sok kerdes van hatra, amit tisztaznom kell, hogy hogy lesz ez annyira kenyelmesen hasznalhato, mint amennyire szeretnem.

Marmint a teszt az oke. Mockolas mar viccesebb, a vezerlese meg meginkabb. Pedig mennyire kiraly lenne egy black box service timeout teszt, nulla kodolassal :)