![](/img/trans.png)
[英]Maven: How can I have a module with same name under two different modules?
[英]Maven: How to test two modules with the same tests in a third module
想象一個maven項目,每個模塊有3個模塊,一個接口模塊和兩個不同的接口實現。 我可以在自己的模塊中測試每個實現,但由於相同的接口,測試用例基本相同。
有沒有辦法在第四個maven模塊中收集測試用例並使用此模塊測試這兩個實現?
parent
|-interface
|-impl a
|-impl b
|-tests
因此,如果我構建impl a,maven知道從測試模塊運行測試以對抗構建。
謝謝。
關於Java:
如何在測試模塊中創建abstract
測試,您將在其中編寫主要測試用例。 此測試將使用測試中第一個模塊中定義的接口。
然后,在每個模塊impl a
和impl b
,創建一個擴展abstract
測試並調用tests
模塊中定義的測試方法的tests
。
關於Maven:
在tests
模塊中,您必須向Maven表明他必須創建一個測試包的jar
:
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>2.3</version>
<executions>
<execution>
<goals>
<goal>test-jar</goal>
</goals>
</execution>
</executions>
</plugin>
然后,在每個實現模塊中,您必須指示您對此test-jar
庫具有依賴性:
<dependency>
<groupId>foo</groupId>
<artifactId>bar</artifactId>
<version>${pom.version}</version>
<type>test-jar</type>
<scope>test</scope>
</dependency>
是的,我們已經為類似的情況做了這個。 您只需在測試模塊中創建兩個pom,每個實現一個。 假設您有一個maven pom用於構建父模塊中的所有內容,現在它將包含類似的模塊
<module>../interface</module>
<module>../impl_a</module>
<module>../impl_b</module>
<module>../tests/impl_a</module>
<module>../tests/impl_b</module>
每個測試pom包含適當實現的依賴性。 所有依賴項當然都要用於測試。
現在,對於parent / pom.xml運行mvn將構建所有項目,並使用適當的依賴項運行相同的測試兩次。 然后測試項目將在每個impl_下創建一個目標目錄? 子目錄。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.