Java 未能在Jzy3d程序的子模块上执行目标Maven Surefire插件

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

为了简化我的问题:什么是测试失败,如何纠正它

我是Maven的新手,我正在尝试让图形绘图应用程序在我的计算机上工作。我已经将所有插件更新为父模块和子模块POM文件中的最新版本,并检查Maven是否指向我安装的最新JRE(它就是)

我的依赖树也都很好,它涵盖了我在这个论坛和其他地方看到这个错误的许多途径

我根本无法孤立这个问题

运行mvn包-e时的错误消息如下:

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
。因此,这两个文件不相等,测试失败

一个可能的解决方案,目标明确