Maven 尝试使用jenkins测试线束编写测试失败
我正在尝试使用jenkins测试工具为我的工作DSL代码编写测试。不幸的是,我遇到以下错误:Maven 尝试使用jenkins测试线束编写测试失败,maven,jenkins,Maven,Jenkins,我正在尝试使用jenkins测试工具为我的工作DSL代码编写测试。不幸的是,我遇到以下错误: java.lang.NoClassDefFoundError: hudson/model/RootAction at java.lang.ClassLoader.defineClass1(Native Method) at java.lang.ClassLoader.defineClass(ClassLoader.java:763) at java.security.Secure
java.lang.NoClassDefFoundError: hudson/model/RootAction
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:763)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:467)
at java.net.URLClassLoader.access$100(URLClassLoader.java:73)
at java.net.URLClassLoader$1.run(URLClassLoader.java:368)
at java.net.URLClassLoader$1.run(URLClassLoader.java:362)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:361)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:338)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
at java.lang.Class.getDeclaredFields0(Native Method)
at java.lang.Class.privateGetDeclaredFields(Class.java:2583)
at java.lang.Class.getDeclaredFields(Class.java:1916)
at org.junit.runners.model.TestClass.getSortedDeclaredFields(TestClass.java:77)
at org.junit.runners.model.TestClass.scanAnnotatedMembers(TestClass.java:70)
at org.junit.runners.model.TestClass.<init>(TestClass.java:57)
at org.junit.runners.ParentRunner.createTestClass(ParentRunner.java:88)
at org.junit.runners.ParentRunner.<init>(ParentRunner.java:83)
at org.junit.runners.BlockJUnit4ClassRunner.<init>(BlockJUnit4ClassRunner.java:65)
at org.junit.internal.builders.JUnit4Builder.runnerForClass(JUnit4Builder.java:10)
at org.junit.runners.model.RunnerBuilder.safeRunnerForClass(RunnerBuilder.java:59)
at org.junit.internal.builders.AllDefaultPossibilitiesBuilder.runnerForClass(AllDefaultPossibilitiesBuilder.java:26)
at org.junit.runners.model.RunnerBuilder.safeRunnerForClass(RunnerBuilder.java:59)
at org.junit.internal.requests.ClassRequest.getRunner(ClassRequest.java:33)
at org.apache.maven.surefire.junit4.JUnit4TestSet.execute(JUnit4TestSet.java:51)
at org.apache.maven.surefire.junit4.JUnit4Provider.executeTestSet(JUnit4Provider.java:123)
at org.apache.maven.surefire.junit4.JUnit4Provider.invoke(JUnit4Provider.java:104)
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:498)
at org.apache.maven.surefire.util.ReflectionUtils.invokeMethodWithArray(ReflectionUtils.java:164)
at org.apache.maven.surefire.booter.ProviderFactory$ProviderProxy.invoke(ProviderFactory.java:110)
at org.apache.maven.surefire.booter.SurefireStarter.invokeProvider(SurefireStarter.java:172)
at org.apache.maven.surefire.booter.SurefireStarter.runSuitesInProcessWhenForked(SurefireStarter.java:104)
at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:70)
Caused by: java.lang.ClassNotFoundException: hudson.model.RootAction
at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:338)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
... 38 more
java.lang.NoClassDefFoundError:hudson/model/RootAction
位于java.lang.ClassLoader.defineClass1(本机方法)
位于java.lang.ClassLoader.defineClass(ClassLoader.java:763)
位于java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
位于java.net.URLClassLoader.defineClass(URLClassLoader.java:467)
在java.net.URLClassLoader.access$100(URLClassLoader.java:73)
在java.net.URLClassLoader$1.run(URLClassLoader.java:368)
在java.net.URLClassLoader$1.run(URLClassLoader.java:362)
位于java.security.AccessController.doPrivileged(本机方法)
位于java.net.URLClassLoader.findClass(URLClassLoader.java:361)
位于java.lang.ClassLoader.loadClass(ClassLoader.java:424)
位于sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:338)
位于java.lang.ClassLoader.loadClass(ClassLoader.java:357)
位于java.lang.Class.getDeclaredFields0(本机方法)
位于java.lang.Class.privateGetDeclaredFields(Class.java:2583)
位于java.lang.Class.getDeclaredFields(Class.java:1916)
位于org.junit.runners.model.TestClass.getSortedDeclaredFields(TestClass.java:77)
位于org.junit.runners.model.TestClass.scanAnnotatedMembers(TestClass.java:70)
位于org.junit.runners.model.TestClass.(TestClass.java:57)
位于org.junit.runners.ParentRunner.createTestClass(ParentRunner.java:88)
位于org.junit.runners.ParentRunner(ParentRunner.java:83)
位于org.junit.runners.BlockJUnit4ClassRunner。(BlockJUnit4ClassRunner.java:65)
位于org.junit.internal.builders.JUnit4Builder.runnerForClass(JUnit4Builder.java:10)
位于org.junit.runners.model.RunnerBuilder.safeRunnerForClass(RunnerBuilder.java:59)
位于org.junit.internal.builders.AllDefaultPossibilityBuilder.runnerForClass(AllDefaultPossibilityBuilder.java:26)
位于org.junit.runners.model.RunnerBuilder.safeRunnerForClass(RunnerBuilder.java:59)
位于org.junit.internal.requests.ClassRequest.getRunner(ClassRequest.java:33)
位于org.apache.maven.surefire.junit4.JUnit4TestSet.execute(JUnit4TestSet.java:51)
位于org.apache.maven.surefire.junit4.JUnit4Provider.executeTestSet(JUnit4Provider.java:123)
位于org.apache.maven.surefire.junit4.JUnit4Provider.invoke(JUnit4Provider.java:104)
在sun.reflect.NativeMethodAccessorImpl.invoke0(本机方法)处
位于sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
在sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)中
位于java.lang.reflect.Method.invoke(Method.java:498)
位于org.apache.maven.surefire.util.ReflectionUtils.invokeMethodWithArray(ReflectionUtils.java:164)
位于org.apache.maven.surefire.booter.ProviderFactory$ProviderProxy.invoke(ProviderFactory.java:110)
位于org.apache.maven.surefire.booter.SurefireStarter.invokeProvider(SurefireStarter.java:172)
在org.apache.maven.surefire.booter.SurefireStarter.runsuitesinprocesswhen标记(SurefireStarter.java:104)
位于org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:70)
原因:java.lang.ClassNotFoundException:hudson.model.RootAction
位于java.net.URLClassLoader.findClass(URLClassLoader.java:381)
位于java.lang.ClassLoader.loadClass(ClassLoader.java:424)
位于sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:338)
位于java.lang.ClassLoader.loadClass(ClassLoader.java:357)
... 38多
我认为这是由pom.xml中的依赖项问题引起的,但我确实将Jenkins war添加到了依赖项列表中(注意:我是maven的新手,所以可能只是缺少了一些东西):
org.jenkins-ci
詹金斯
1.37
4.0.0
com.mysimpletest
我的简单测试
罐子
1.0-快照
我的简单测试
http://maven.apache.org
朱尼特
朱尼特
4.12
测试
org.jenkins-ci.main
詹金斯战争
2.110
测试
战争
org.jenkins-ci.main
詹金斯测试线束
2.34
测试
org.jenkins-ci
https://repo.jenkins-ci.org/public/
如果您想测试某些东西,那么包含war文件不是正确的方法。想一想应该如何在文件夹中找到正确的库 只需添加具体的依赖项即可:
<dependency>
<groupId>org.jenkins-ci.main</groupId>
<artifactId>jenkins-core</artifactId>
<version>2.110</version>
<scope>provided</scope>
</dependency>
org.jenkins-ci.main
詹金斯核心
2.110
假如
还有为什么要添加父级?我的建议:只包括你真正需要的东西…只是为了确定:你只是错过了从pom复制粘贴时的结束“”?事实上,这是一个复制粘贴错误。我担心我对Maven不熟悉是问题所在。感谢您的建议,这似乎确实解决了问题(下一个问题!)。一旦我能做到,我就会知道赏金的存在。。。
<dependency>
<groupId>org.jenkins-ci.main</groupId>
<artifactId>jenkins-core</artifactId>
<version>2.110</version>
<scope>provided</scope>
</dependency>