-
Bug
-
Resolution: Fixed
-
Minor
-
None
-
dependencies {
classpath 'org.jenkins-ci.tools:gradle-jpi-plugin:0.10.2'
}
I get the following error when trying to run a unit test. Example code is below.
I was able to get past this error by including dependancy testCompile 'org.jvnet.hudson.main:hudson-core:1.159' but that then said other classes where missing. This doesn't see the correct path to go down anyway.
Error
java.lang.NoClassDefFoundError: hudson/matrix/MatrixRun at com.inedo.TriggerBuildStepTest.<init>(TriggerBuildStepTest.java:13) at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source) ... Caused by: java.lang.ClassNotFoundException: hudson.matrix.MatrixRun at java.net.URLClassLoader$1.run(Unknown Source) at java.net.URLClassLoader$1.run(Unknown Source) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(Unknown Source) at java.lang.ClassLoader.loadClass(Unknown Source) at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source) at java.lang.ClassLoader.loadClass(Unknown Source) ... 23 more
Code Example
package test.example;
import static org.junit.Assert.*;
import org.jvnet.hudson.test.JenkinsRule;
import org.apache.commons.io.FileUtils;
import hudson.model.*;
import hudson.tasks.Shell;
import org.junit.Test;
import org.junit.Rule;
public class TriggerBuildStepTest {
@Rule
public JenkinsRule j = new JenkinsRule();
@Test
public void first() throws Exception {
FreeStyleProject project = j.createFreeStyleProject();
project.getBuildersList().add(new Shell("echo hello"));
FreeStyleBuild build = project.scheduleBuild2(0).get();
System.out.println(build.getDisplayName() + " completed");
// TODO: change this to use HtmlUnit
String s = FileUtils.readFileToString(build.getLogFile());
assertTrue(s.contains("+ echo hello"));
}
}