using @Category annotation with SWTBot [message #1728712] |
Wed, 06 April 2016 11:29  |
Eclipse User |
|
|
|
The question may appear to be quite a naive one, but I just can't get my head round it.
Is it possible to use junit Categories in SWTBot tests? I have an example test suite (code below) while running it as 'SWTBot test', I get the following error:
Quote:java.lang.Exception: Category annotations on Parameterized classes are not supported on individual methods.
at org.junit.runners.model.InitializationError.<init>(InitializationError.java:32)
at org.junit.experimental.categories.Categories.assertNoDescendantsHaveCategoryAnnotations(Categories.java:189)
at org.junit.experimental.categories.Categories.assertNoDescendantsHaveCategoryAnnotations(Categories.java:191)
at org.junit.experimental.categories.Categories.assertNoCategorizedDescendentsOfUncategorizeableParents(Categories.java:179)
at org.junit.experimental.categories.Categories.<init>(Categories.java:164)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:422)
at org.junit.internal.builders.AnnotatedBuilder.buildRunner(AnnotatedBuilder.java:33)
at org.junit.internal.builders.AnnotatedBuilder.runnerForClass(AnnotatedBuilder.java:21)
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:26)
at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.<init>(JUnit4TestReference.java:33)
at org.eclipse.jdt.internal.junit4.runner.JUnit4TestClassReference.<init>(JUnit4TestClassReference.java:25)
at org.eclipse.jdt.internal.junit4.runner.JUnit4TestLoader.createTest(JUnit4TestLoader.java:48)
at org.eclipse.jdt.internal.junit4.runner.JUnit4TestLoader.loadTests(JUnit4TestLoader.java:38)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:444)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:675)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:382)
at org.eclipse.swtbot.eclipse.core.RemotePluginTestRunner.main(RemotePluginTestRunner.java:64)
at org.eclipse.swtbot.eclipse.core.UITestApplication.runTests(UITestApplication.java:117)
at org.eclipse.e4.ui.internal.workbench.swt.E4Testable$1.run(E4Testable.java:73)
at java.lang.Thread.run(Thread.java:745)
The test suite I'm using:
SlowTestSuite.java
interface SlowTests {
}
@RunWith(Categories.class)
@IncludeCategory(SlowTests.class)
@SuiteClasses(A.class)
public class SlowTestSuite {
}
A.java
@RunWith(SWTBotJunit4ClassRunner.class)
public class A {
private static SWTWorkbenchBot bot;
@BeforeClass
public static void firstBefore() {
System.out.println("Executing A.firstBefore()");
bot = new SWTWorkbenchBot();
}
@Test
@Category(SlowTests.class)
public void a() {
System.out.println("Executing A.a()");
System.out.println(bot.activeShell().getText());
Assert.fail();
}
@Test
public void b() {
System.out.println("Executing A.b()");
}
@Test
public void c() {
System.out.println("Executing A.c()");
}
@AfterClass
public static void after() {
System.out.println("Executing A.after()");
}
}
I tried using @Category annotation on the class level instead of individual method, but no luck. Any help will be much appreciated.
|
|
|
|
|
Powered by
FUDForum. Page generated in 0.04127 seconds