使你的测试互动绝对是不错的办法 - 构建仅仅是不可复制的,在所有的,让其他人知道预期什么参数等等。
如果你的测试用例需要在运行时带参数(或者更准确的说,需要在Maven构建开始之前设置它们),你有几个选择。
选项#1。属性文件和maven资源处理。
想法只是在您的项目中有一个属性文件,并告诉maven在那里解决变量 值。例如:
的pom.xml:
<resources>
<resource>
<directory>src/test/resources/data</directory>
<filtering>true</filtering>
</resource>
</resources>
/src/test/resources/data/myproperties.properties:
myVar = ${myVar}
然后运行行家作为构建:
mvn -DmyVar=value clean install
您不仅可以使用属性文件,而且可以使用任何其他文件类型(例如XML)。
提示:可以使用Maven的实施者 - 插件强制用户输入-DmyVar,如果所有需要的属性未设置这个插件将无法构建。
选项#2。属性文件和Spring DI。
想法与上面几乎相同,但Spring用于注入所有必要的东西来测试类。例如:
@Component
public class MyTest
{
@Value(${myProperty})
private String myValue;
// ... Test methods which can use myValue ...
}
有关可能的Spring配置的完整示例,请参阅this answer。
顺便说一句,你的测试是一个单元测试,但集成测试 - 如果它涉及到部署你的Web服务或其他类似的东西。因此,拆分单元测试(maven-surefire-plugin)和集成测试(maven-failsafe-plugin)将是明智之举。
使用'properties'和'profiles'为此 – MariuszS