2017-07-11 90 views
0

我想從命令行編譯並在Groovy中運行單元測試。項目中的包裝結構並不遵循命名慣例 - 這是我現在不能改變的東西。這些類組織爲:Maven無法解析org.junit.test

src/abc/def/SomeClass.groovy 

src/abc/tests/def/TestSomeClass.groovy 

當我運行mvn test,該消息是:

無法解決類org.junit.Test

無法resovle類org.junit.Assert

src/abc/tests/def/TestSomeClass.groovy

我POM是:

<?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/xsd/maven-4.0.0.xsd"> 
    <modelVersion>4.0.0</modelVersion> 
    <groupId>org.codehaus.mojo</groupId> 
    <artifactId>my-project</artifactId> 
    <version>1.0</version> 
    <build> 
     <plugins> 
     <plugin> 
      <groupId>org.codehaus.gmavenplus</groupId> 
      <artifactId>gmavenplus-plugin</artifactId> 
      <version>1.5</version> 
      <configuration> 
       <sources> 
        <source> 
        <directory>src</directory> 
        <includes> 
         <include>**/*.groovy</include> 
        </includes> 
        </source> 
       </sources> 
      </configuration> 
      <executions> 
       <execution> 
        <goals> 
        <goal>compile</goal> 
        <goal>addSources</goal> 
        <goal>addTestSources</goal> 
        <goal>testCompile</goal> 
        </goals> 
       </execution> 
      </executions> 
     </plugin> 
     <plugin> 
      <groupId>org.apache.maven.plugins</groupId> 
      <artifactId>maven-surefire-plugin</artifactId> 
      <version>2.18.1</version> 
      <configuration> 
       <includes> 
        <include>**/Test*.groovy</include> 
       </includes> 
      </configuration> 
     </plugin> 
     </plugins> 
    </build> 
    <dependencies> 
     <dependency> 
     <groupId>org.codehaus.groovy</groupId> 
     <artifactId>groovy-all</artifactId> 
     <version>2.4.7</version> 
     </dependency> 
     <dependency> 
     <groupId>junit</groupId> 
     <artifactId>junit</artifactId> 
     <version>4.11</version> 
     <scope>test</scope> 
     </dependency> 
    </dependencies> 
</project> 

回答

0

標準Maven的目錄佈局是這樣的:

對於生產:
<project>/src/main/groovy/abc/def

對於測試:
<project>/src/test/groovy/abc/def

如果安排你的消息來源符合這個方案,你不應該有問題。

More informations

+0

我重構包/目錄,讓他們按照慣例 '的src /測試/常規/ ABC/DEF /'。 而我仍然收到相同的信息 - 無法解析org.junit.Test和org.junit.Assert。 如果我禁用 '測試' 編譯成功(gmavenplus火的testCompile消息 - 編譯XY文件),但沒有測試運行。 –