Java 未能在Jzy3d程序的子模块上执行目标Maven Surefire插件
为了简化我的问题:什么是测试失败,如何纠正它 我是Maven的新手,我正在尝试让图形绘图应用程序在我的计算机上工作。我已经将所有插件更新为父模块和子模块POM文件中的最新版本,并检查Maven是否指向我安装的最新JRE(它就是) 我的依赖树也都很好,它涵盖了我在这个论坛和其他地方看到这个错误的许多途径 我根本无法孤立这个问题 运行mvn包-e时的错误消息如下:Java 未能在Jzy3d程序的子模块上执行目标Maven Surefire插件,java,maven,jzy3d,Java,Maven,Jzy3d,为了简化我的问题:什么是测试失败,如何纠正它 我是Maven的新手,我正在尝试让图形绘图应用程序在我的计算机上工作。我已经将所有插件更新为父模块和子模块POM文件中的最新版本,并检查Maven是否指向我安装的最新JRE(它就是) 我的依赖树也都很好,它涵盖了我在这个论坛和其他地方看到这个错误的许多途径 我根本无法孤立这个问题 运行mvn包-e时的错误消息如下: D:\Program Files\jzy3d-api-master>mvn package -e [INFO] Error st
D:\Program Files\jzy3d-api-master>mvn package -e
[INFO] Error stacktraces are turned on.
[INFO] Scanning for projects...
[INFO]
------------------------------------------------------------------------
[INFO] Reactor Build Order:
[INFO]
[INFO] Jzy3d Master Project
[INFO] JDT core (fork of https://github.com/yonatang/JDT)
[INFO] Jzy3d API
[INFO] Jzy3d SWT Tools
[INFO] Jzy3d Tutorials
[INFO]
[INFO]
------------------------------------------------------------------------
[INFO] Building Jzy3d Master Project 0.9.2-SNAPSHOT
[INFO]
------------------------------------------------------------------------
[INFO]
[INFO]
------------------------------------------------------------------------
[INFO] Building JDT core (fork of https://github.com/yonatang/JDT)
0.9.2-SNAPSHOT
[INFO] ------------------------------------------------------------------------
[INFO]
[INFO] --- maven-resources-plugin:2.6:resources (default-resources) @ jzy3d-jdt-core ---
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] skip non existing resourceDirectory D:\Program Files\jzy3d-api-master\jzy3d-jdt-core\src\main\resources
[INFO]
[INFO] --- maven-compiler-plugin:3.3:compile (default-compile) @ jzy3d-jdt-core ---
[INFO] Nothing to compile - all classes are up to date
[INFO]
[INFO] --- maven-resources-plugin:2.6:testResources (default-testResources) @ jzy3d-jdt-core ---
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] Copying 18 resources
[INFO]
[INFO] --- maven-compiler-plugin:3.3:testCompile (default-testCompile) @ jzy3d-jdt-core ---
[INFO] Nothing to compile - all classes are up to date
[INFO]
[INFO] --- maven-surefire-plugin:2.19.1:test (default-test) @ jzy3d-jdt-core ---
[INFO] Surefire report directory: D:\Program Files\jzy3d-api-master\jzy3d-jdt-core\target\surefire-reports
-------------------------------------------------------
T E S T S
-------------------------------------------------------
Running il.ac.idc.jdt.SmokeTest Configuring TestNG with: TestNG60Configurator Tests run: 1, Failures: 1, Errors: 0, Skipped: 0, Time elapsed: 2.639 sec <<< FAILURE! - in il.ac.idc.jdt.SmokeTest shouldRunOnExampleData(il.ac.idc.jdt.SmokeTest) Time elapsed: 0.412 sec <<< FAILURE! java.lang.AssertionError: t1_1000.tsin trangulation is correct for smf
at il.ac.idc.jdt.SmokeTest.shouldRunOnExampleData(SmokeTest.java:28)
Results :
Failed tests: SmokeTest.shouldRunOnExampleData:28 t1_1000.tsin trangulation is correct for smf
Tests run: 1, Failures: 1, Errors: 0, Skipped: 0
[INFO]
------------------------------------------------------------------------
[INFO] Reactor Summary:
[INFO]
[INFO] Jzy3d Master Project ............................... SUCCESS [ 0.022 s]
[INFO] JDT core (fork of https://github.com/yonatang/JDT) . FAILURE [ 8.853 s]
[INFO] Jzy3d API .......................................... SKIPPED
[INFO] Jzy3d SWT Tools .................................... SKIPPED
[INFO] Jzy3d Tutorials .................................... SKIPPED
[INFO]
------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO]
------------------------------------------------------------------------
[INFO] Total time: 9.772 s
[INFO] Finished at: 2016-01-13T11:56:26+00:00
[INFO] Final Memory: 8M/22M
[INFO]
------------------------------------------------------------------------
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-surefire-plugin:2.19.1:test (default-test) on project jzy3d-jdt-core: There are test failures.
[ERROR]
[ERROR] Please refer to D:\Program Files\jzy3d-api-master\jzy3d-jdt-core\target\surefire-reports for the individual test results.
[ERROR] -> [Help 1] org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal org.apache.maven.plugins:maven-surefire-plugin:2.19.1:test (default-test) on project jzy3d-jdt-core: There are test failures.
Please refer to D:\Program Files\jzy3d-api-master\jzy3d-jdt-core\target\surefire-reports for the individual test results.
at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:212)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:153)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:145)
at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:116)
at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:80)
at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build(SingleThreadedBuilder.java:51)
at org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:128)
at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:307)
at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:193)
at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:106)
at org.apache.maven.cli.MavenCli.execute(MavenCli.java:863)
at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:288)
at org.apache.maven.cli.MavenCli.main(MavenCli.java:199)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:497)
at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:289)
at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:229)
at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:415)
at org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:356) Caused by: org.apache.maven.plugin.MojoFailureException: There are test failures.
Please refer to D:\Program Files\jzy3d-api-master\jzy3d-jdt-core\target\surefire-reports for the individual test results.
at org.apache.maven.plugin.surefire.SurefireHelper.reportExecution(SurefireHelper.java:91)
at org.apache.maven.plugin.surefire.SurefirePlugin.handleSummary(SurefirePlugin.java:320)
at org.apache.maven.plugin.surefire.AbstractSurefireMojo.executeAfterPreconditionsChecked(AbstractSurefireMojo.java:892)
at org.apache.maven.plugin.surefire.AbstractSurefireMojo.execute(AbstractSurefireMojo.java:755)
at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:134)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:207)
... 20 more [ERROR] [ERROR] Re-run Maven using the -X switch to enable full debug logging. [ERROR] [ERROR] For more information about the errors and possible solutions, please read the following articles: [ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoFailureException [ERROR] [ERROR] After correcting the problems, you can resume the build with the command [ERROR] mvn <goals> -rf :jzy3d-jdt-core
D:\Program Files\jzy3d-api master>mvn包-e
[信息]错误堆栈跟踪已打开。
[信息]正在扫描项目。。。
[信息]
------------------------------------------------------------------------
[信息]反应堆建造顺序:
[信息]
【信息】Jzy3d主项目
[信息]JDT核心(分支https://github.com/yonatang/JDT)
【信息】Jzy3d API
[信息]Jzy3d SWT工具
[信息]Jzy3d教程
[信息]
[信息]
------------------------------------------------------------------------
[信息]建设Jzy3d主项目0.9.2-SNAPSHOT
[信息]
------------------------------------------------------------------------
[信息]
[信息]
------------------------------------------------------------------------
[信息]构建JDT核心(分支)https://github.com/yonatang/JDT)
0.9.2-快照
[信息]-------------------------------------------------------------
[信息]
[信息]---maven资源插件:2.6:resources(默认资源)@jzy3d jdt核心--
[信息]使用“UTF-8”编码复制筛选的资源。
[信息]跳过不存在的资源目录D:\Program Files\jzy3d api master\jzy3d jdt core\src\main\resources
[信息]
[信息]---maven编译器插件:3.3:compile(默认编译)@jzy3d-jdt-core
[信息]无需编译-所有类都是最新的
[信息]
[信息]---maven资源插件:2.6:testResources(默认testResources)@jzy3d jdt核心--
[信息]使用“UTF-8”编码复制筛选的资源。
[信息]正在复制18个资源
[信息]
[信息]---maven编译器插件:3.3:testCompile(默认testCompile)@jzy3d jdt核心--
[信息]无需编译-所有类都是最新的
[信息]
[信息]---maven surefire插件:2.19.1:test(默认测试)@jzy3d jdt核心--
[信息]Surefire报告目录:D:\Program Files\jzy3d api master\jzy3d jdt core\target\Surefire报告
-------------------------------------------------------
T T S T S
-------------------------------------------------------
运行il.ac.idc.jdt.SmokeTest配置TestNG时使用:TestNG60Configurator测试运行:1,失败:1,错误:0,跳过:0,运行时间:2.639秒
测试失败是在执行测试时所做断言的负面结果。基本上,您会从被调用的方法或正在读取的字段中得到一个意外的结果
->它坏了,必须修理。这并不意味着你必须修复它
mvn package -Dmaven.test.skip=true
可能有助于建立资源
但是,您可以下载二进制文件,而不是自己构建源代码。这些似乎也可以在网页上找到。当我在jzy3d的master或0.9.1分支的新克隆上运行mvn package-e
时,所有测试都通过,maven构建成功
从上面的输出来看,src/test/java/il/ac/idc/jdt/SmokeTest.java
(在jzy3d-jdt-core
子模块中)中的shouldrunonnomperdata
测试失败。查看该测试的源代码,很明显它是为在某种风格的Unix上运行而设计的,因为它引用了硬编码路径“/inputs/”
和“/outputs/”
同样从上面的输出来看,很明显,您正在一些flavor窗口上运行,因此测试没有通过也就不足为奇了。如果要通过测试,可以分别将它们更改为“\\inputs\\\”
和“\\outputs\\\”
,或者使用更灵活的文件.separator
,这应该适用于每个操作系统
如果您不关心测试是否通过,只想构建由mvn package-e
生成的jar文件,那么您可以运行mvn package-e-DskipTests
。(设置-Dmaven.test.skip=true也应该起作用;请参阅。)
为了简化我的问题:什么是测试失败,如何纠正它
在Maven项目的构建过程中,它会自动执行所调用的内容。这些是Java类,其目的是验证项目特定方法的行为。在本例中,一个测试在您的构建中失败
2016年3月12日更新:本文中提到的问题已经解决
在Windows上运行时,库的测试确实存在问题。我检查了他们GitHub的主机,我和你有同样的错误
原因是,在单元测试期间,库正在检查两个文件的内容是否相等。但是,一个文件是使用当前操作系统的行分隔符创建的,而控制文件具有Unix行分隔符
如果查看文件jzy3d jdt core\src\test\resources\outputs\t1\u 1000.tsin\u result.tsin
,您会注意到它使用了Unix\n
行分隔符。失败的shouldData
测试正在创建一个临时文件以对照该控制文件进行验证。在我的Windows计算机上,此临时文件是在C:\Users\{UserName}\AppData\Local\Temp\jdt-4971059362436436156.smf中创建的,如果打开,您可以看到它使用了Windows行分隔符\r\n
。因此,这两个文件不相等,测试失败
一个可能的解决方案,目标明确