2009-08-24 15 views

Odpowiedz

30

Możesz użyć build-helper-maven-plugin, aby określić dodatkowe katalogi zasobów testowych w następujący sposób. Za pomocą poniższego konfigurację, zawartość katalogu test-zasobów zostaną skopiowane do katalogu docelowego/test-classes podczas generowania prób źródeł faza:

<plugin> 
    <groupId>org.codehaus.mojo</groupId> 
    <artifactId>build-helper-maven-plugin</artifactId> 
    <version>1.12</version> 
    <executions> 
    <execution> 
     <id>add-test-resource</id> 
     <phase>generate-test-sources</phase> 
     <goals> 
     <goal>add-test-resource</goal> 
     </goals> 
     <configuration> 
     <resources> 
      <resource> 
      <directory>path/to/additional/test/resources</directory> 
      <excludes> 
       <exclude>**/folder-to-exclude/**</exclude> 
      </excludes> 
      </resource> 
     </resources> 
     </configuration> 
    </execution> 
    </executions> 
</plugin> 
+4

Nie ma znaczenia funkcjonalnie, ale dla uporządkowania, czy faza nie powinna być generowana testowo? - źródła zamiast źródeł generujących test? – thSoft

23

Jeśli chcesz tylko umieścić swoją nieruchomość pliki gdzieś na dysku i nie chcesz, aby skopiować te pliki własności kierować/test-klasy podczas kompilacji, można zrobić to w ten sposób

<plugin> 
    <groupId>org.apache.maven.plugins</groupId> 
    <artifactId>maven-surefire-plugin</artifactId> 
    <configuration> 
    <additionalClasspathElements> 
     <additionalClasspathElement>/add/this/to/path</additionalClasspathElement> 
    </additionalClasspathElements> 
    </configuration> 
</plugin> 
+1

Niestety, m2e nie pobiera konfiguracji Surefire podczas uruchamiania testów z Eclipse. Szkoda, ponieważ jest to trochę prostsze niż cel dodawania zasobów testowych dodatku do build-helper-maven-plugin. – thSoft

7

Dlaczego nie wystarczy użyć test/resources i umieścić swoje właściwości w ścieżce klasy z ten punkt. Będą tam tylko w fazie testów.

+1

Jeden ma tylko jeden taki folder, ale często więcej niż jedno środowisko testowe. – 30thh

+0

Sprawdź profile maven, przyjacielu. –

4

Jeśli masz wiele środowisk zasobów, możesz użyć profilu maven i umieścić różne zasoby zgodnie z profilem, który testujesz.

test/resources/uat 
test/resources/prod 
test/resources/dev 

Zazwyczaj, jeśli potrzebujesz przeprowadzić test integracji, nie potrzebujesz wtyczki build-helper-maven.

1

Obiekt maven-resources-plugin ma cel, który umożliwia kopiowanie zasobów. Na przykład:

<plugin> 
    <groupId>org.apache.maven.plugins</groupId> 
    <artifactId>maven-resources-plugin</artifactId> 
    <version>2.6</version> 
    <executions> 
     <execution> 
     <id>additional-resources</id> 
     <phase>process-test-resources</phase> 
     <goals> 
      <goal>copy-resources</goal> 
     </goals> 
     <configuration> 
      <outputDirectory>${project.build.testOutputDirectory}</outputDirectory> 
      <resources> 
      <resource> 
       <directory>${project.basedir}/conf</directory> 
      </resource> 
      </resources> 
     </configuration> 
     </execution> 
    </executions> 
    </plugin> 

to skopiuje zawartość folderu conf w podstawie projektu do folderu target/test-classes (o ile nie zostały zmodyfikowane project.build.testOutputDirectory), która zostanie dodana do ścieżki klasy podczas swoich testów jednostkowych .

23

Możesz również dodać nowe foldery zasobów testowych.

<build> 
    <testResources> 
     <testResource> 
      <directory>${project.basedir}/src/test/resources</directory> 
     </testResource> 
     <testResource> 
      <directory>${project.basedir}/src/test/something_else</directory> 
     </testResource> 
    </testResources> 
</build> 

Pierwsza ścieżka, src/test/resources, jest domyślna. Zakładając, że nadal chcesz korzystać z domyślnej ścieżki, upewnij się, że jest włączona. (Znacznik testResources nadpisuje twoje ustawienia domyślne, więc jeśli nie dodasz domyślnej ścieżki jawnie, przestanie być używana.)

+0

To zadziałało dla mnie. +1 za wskazanie potrzeby ustawienia domyślnego. –

+2

Dokładnie tego szukałem, dzięki! Znacznie prostsze niż akceptowane rozwiązanie 'build-helper-maven-plugin'. Dla każdego, kto szuka sposobu, aby to zrobić, konstruktor ' ...' może być również dodany do twoich profili maven, np. na wypadek, gdybyś chciał określić różne zasoby dla różnych środowisk (local/dev/test/prod). –

Powiązane problemy