Chcę sprawdzić w Maven, czy dane uwierzytelniające z pliku właściwości są dostarczane przez programistę podczas testowania aplikacji, jeśli wywołanie integracja-test cykl życia.Sprawdzanie istnienia cyklu i istnienia pliku w Maven i zgłaszanie błędu
Jako powszechną praktykę państwową nieprawidłowo jest przekazywać dane uwierzytelniające do drzewa źródłowego. Standardowe podejście do maven opisane w settings such as username and password should not be distributed along with the pom.xml.
Ale nie podoba mi się to podejście (Chcę za ustawieniach kasowych, nie za dev-host !!) i chcą, aby zapewnić src/Text/resources/auth.properties.example w VCS (SVN/GIT/HG) jako przykład i chcesz utworzyć kod sprawdzający w Maven pod kątem istnienia src/text/resources/auth.properties, który jest własny na programistę (lub kiedykolwiek za zamówienie w ramach projektu !!), ale tylko wtedy, gdy test integracji faza została wywołana (lub jakakolwiek inna po fazie testowania faza). Jeśli wykonywane były poprzednie fazy (jak kompilacja lub test) - te sprawdzenia muszą być wyłączone.
Maven zatwierdzić faza przeznaczona do sprawdzania konsystencji kompilacji (patrz: introduction-to-the-lifecycle). Ale nie ma żadnych kontroli faz! Tak więc używam fazy pre-integracji-testu .
piszę kod roboczy:
<?xml version="1.0" encoding="utf-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.mycompany.app</groupId> <artifactId>my-app</artifactId> <packaging>jar</packaging> <version>1.0</version> <name>my-app</name> <profiles> <profile> <id>existent.properties</id> <activation> <file> <missing>auth.properties</missing> </file> </activation> <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-antrun-plugin</artifactId> <version>1.6</version> <executions> <execution> <phase>pre-integration-test</phase> <goals> <goal>run</goal> </goals> <configuration> <target> <echo>In order to run integration-text life-cycle:</echo> <echo> 1) Rename 'auth.properties.example' into 'auth.properties'.</echo> <echo> 2) Fill 'auth.properties' with your own authentification data.</echo> <fail message="Can't find 'auth.properties'."/> </target> </configuration> </execution> </executions> </plugin> </plugins> </build> </profile> </profiles> <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-antrun-plugin</artifactId> <version>1.6</version> <executions> <execution> <id>test</id> <phase>test</phase> <goals> <goal>run</goal> </goals> <configuration> <target> <echo>JUnit tests!</echo> </target> </configuration> </execution> <execution> <id>integration-test</id> <phase>integration-test</phase> <goals> <goal>run</goal> </goals> <configuration> <target> <echo>Selenium tests!</echo> </target> </configuration> </execution> </executions> </plugin> </plugins> </build> </project>
Ale jak GNU make guru Nie lubię powyżej kodu. Czy mam rację? Czy to niewłaściwe wykorzystanie Mavena?
Dzięki za link do ** Maven-egzekutor-plugin **! – gavenkoa