简而言之,有两个项目:tddl-matrix和tddl-rule。 tddl-maxtrix中的测试报告未找到tddl-rule的测试包中定义的类。
详情: 两个项目中都有许多测试,tddl-matmrix中的测试依赖于tddl-rule中定义的某些类(例如,TestUtils)。
例如: tddl-rule中的测试是:
package com.taobao.tddl.rule;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertTrue;
public class TestUtils {
public static final int GreaterThan = Comparative.GreaterThan;
public static final int GreaterThanOrEqual = Comparative.GreaterThanOrEqual;
public static final int Equivalent = Comparative.Equivalent;
public static final int NotEquivalent = Comparative.NotEquivalent;
public static final int LessThan = Comparative.LessThan;
}
然后在tddl-matrix中的另一个测试是:
import static com.taobao.tddl.rule.TestUtils.Equivalent;
import static com.taobao.tddl.rule.TestUtils.GreaterThan;
import com.taobao.tddl.rule.TestUtils;
public class BigDecimalPartDiscontinousRangeEnumeratorUnitTest{
...
}
tddl-matrix中的测试取决于类TestUtils
,它位于tddl-rule的test目录中。
当我运行mvn install -DskipTests
时,在一台计算机上可以正常,但在另一台计算机上运行正常(错误表示无法找到TestUtils
。)。所以我很困惑:
c:\..\.m2\replository\com\..\tddl-rule\
,我找不到任何类命名TestUtils
。该类仅存在于tddl-rule的项目目标目录中。 tddl-matrix的pom类似于:
<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>
<parent>
<groupId>com.taobao.tddl</groupId>
<artifactId>tddl</artifactId>
<version>5.1.7-SNAPSHOT</version>
<relativePath>../pom.xml</relativePath>
</parent>
<groupId>com.taobao.tddl</groupId>
<artifactId>tddl-matrix</artifactId>
<packaging>jar</packaging>
<name>${project.artifactId} module for tddl ${project.version}</name>
<dependencies>
<dependency>
<groupId>${project.groupId}</groupId>
<artifactId>tddl-optimizer</artifactId>
<version>${project.version}</version>
</dependency>
.....
<!-- Test libs -->
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
</project>
而mvn dependency:tree
是:
[INFO] com.taobao.tddl:tddl-matrix:jar:5.1.7-SNAPSHOT
[INFO] +- com.taobao.tddl:tddl-common:jar:5.1.7-SNAPSHOT:compile
[INFO] | ...
[INFO] +- com.taobao.tddl:tddl-optimizer:jar:5.1.7-SNAPSHOT:compile
[INFO] | +- com.taobao.tddl:tddl-rule:jar:5.1.7-SNAPSHOT:compile
[INFO] | | +- org.springframework:spring-core:jar:2.5.6.SEC03:compile
[INFO] | | | \- commons-logging:commons-logging:jar:1.1.1:compile
[INFO] | | +- org.springframework:spring-context:jar:2.5.6.SEC03:compile
[INFO] | | | +- aopalliance:aopalliance:jar:1.0:compile
[INFO] | | | \- org.springframework:spring-beans:jar:2.5.6.SEC03:compile
[INFO] | | \- org.codehaus.groovy:groovy-all:jar:2.1.9:compile
[INFO] | +- com.taobao.tddl:tddl-parser:jar:5.1.7-SNAPSHOT:compile
[INFO] | \- cglib:cglib-nodep:jar:3.1:compile
[INFO] \- junit:junit:jar:4.11:test
[INFO] \- org.hamcrest:hamcrest-core:jar:1.3:test
答案 0 :(得分:0)
AFAIK你不能使用其他Maven项目的测试类。恕我直言,即使你可以,你也不应该这样做。如果需要实用程序类来测试不同的工件,请编写test-utilities.jar并在所有测试用例中将其用作test
依赖项。