创建一个执行参数化JUnit测试的Maven插件

时间:2015-10-06 09:22:55

标签: java oracle maven junit

我们有一个多模块Maven项目,并打算对此进行测试。因为我们的测试是非常同质的,而不是一遍又一遍地编写相同的测试,我们编写了一个参数化测试,它获取了所有要测试的文件并对它们运行测试。现在我们希望将其作为maven插件,以便您可以执行mvn xquerytestrunner:test

之类的操作

我创建了一个单独的项目,在那里创建了一个Java文件,并用

注释它
 @Mojo( name = "xquerytester")
 public class XQueryTestRunner extends AbstractMojo {

    @Parameter( property = "xquerytester.querytotest", defaultValue = "" )
    private static String queryToTest;

    public void execute() throws MojoExecutionException, MojoFailureException {
         JUnitCore junit = new JUnitCore();
         Result result = junit.run(ParameterizedGenericXQueryTest.class);
    }
}

现在我的问题。这会运行吗?它有意义吗?

我的另一个选择是在主模块的src / test / java文件夹中进行测试并使用mvn -Dtest=TestCircle test运行它,但问题是我们使用Oracle的插件(oracle-soa-plugin )弄乱项目周围的一切,但我们必须使用它。

我们的主要pom.xml有<packaging>pom</packaging>,这就是为什么运行上面的测试目标不起作用的原因。它只是不构建或测试任何东西。如果我将其更改为jar,则插件会在构建期间引发错误。而且我不能跳过构建阶段,因为插件只是做了它的东西。

我的目标只是为运行我的参数化测试的控制台提供一个衬垫。看起来甲骨文似乎没有阅读如何编写maven插件的方法,现在我必须使用它。

更新1:

我们现在使用maven插件。这可以独立于oracle soa插件运行,也可以在具有“pom”packagint类型的mvn项目上运行。

Mojo课程:

@Mojo( name = "xsl")
public class XslTestRunner {

@Parameter( property = "xsl.name", defaultValue = "" )
private static String name;

public void execute() throws MojoExecutionException, MojoFailureException {
    JUnitCore junit = new JUnitCore();
    Result result = junit.run(ParameterizedGenericXslTest.class);
    PrintHelper.printResults(result, TransformationTestType.XQUERY);
}
}

Maven Plugin Pom:

一般情况下,我按照以下说明操作:Your First Plugin

0 个答案:

没有答案