python&;maven(单元测试集成)
我有一个主要使用Java的项目(使用maven作为构建工具),我们希望添加一些python模块。将代码放在src/main/python中很容易,但是我还没有找到一种很好的方法将maven的测试框架集成到我们的python单元测试中。有没有一种很好的方法可以让我的java单元测试和python单元测试以相同的maven目标运行?(如果python单元测试的结果将显示在站点报告中,则会获得额外的分数)。这似乎就是您想要的。还有一些其他地方讨论了这一点python&;maven(单元测试集成),python,unit-testing,maven,Python,Unit Testing,Maven,我有一个主要使用Java的项目(使用maven作为构建工具),我们希望添加一些python模块。将代码放在src/main/python中很容易,但是我还没有找到一种很好的方法将maven的测试框架集成到我们的python单元测试中。有没有一种很好的方法可以让我的java单元测试和python单元测试以相同的maven目标运行?(如果python单元测试的结果将显示在站点报告中,则会获得额外的分数)。这似乎就是您想要的。还有一些其他地方讨论了这一点 您也可以查看。尽管如此,Jython可能不支
您也可以查看。尽管如此,Jython可能不支持您在Python代码中使用的东西。ShiningPanda的同事们似乎在这方面做了一些工作,他们的博客文章解释了他们是如何做到的(正如@S.Lott所指出的),下面是一个工作示例:
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>exec-maven-plugin</artifactId>
<version>1.6.0</version>
<executions>
<execution>
<id>python-test</id>
<phase>test</phase>
<goals>
<goal>exec</goal>
</goals>
<configuration>
<executable>python3</executable>
<workingDirectory>${project.build.directory}</workingDirectory>
<arguments>
<argument>-m</argument>
<argument>unittest</argument>
<argument>discover</argument>
<argument>.</argument>
</arguments>
</configuration>
</execution>
</executions>
</plugin>
org.codehaus.mojo
execmaven插件
1.6.0
python测试
测试
执行官
蟒蛇3
${project.build.directory}
-m
单元测试
发现
.
在本例中,我们的测试是在${project.build.directory}上进行的,并且构建机器已经安装了
python3
。我尝试过使用类似于上面的exec插件,但是我无法获得单元测试的“结果”来传播到maven中。例如,我们使用Hudson进行持续集成,如果python单元测试失败,我们至少需要在那里反映它。让maven查看exec进程的返回代码时,我是否错过了什么?@Mark:“result”?状态码?还是原木?如果您需要状态代码,这就是进程的存在状态。请参见successCodes
。如果您想要日志,这就是stdout和stderr的用途。请参阅outputFile
。很抱歉响应太晚:可能我绑定到了错误的生命周期方法,但是如果exec进程返回错误,它会停止生成还是只是静静地失败?例如,如果junit测试失败,它会记录错误,但会继续构建和测试,我会查看surefire报告以查看测试详细信息(Hudson会将构建标记为不稳定,因为测试失败,但构建成功)。一个执行者不会挂接到那个系统(至少就我现在的理解而言)。