У меня есть 3 тестовых класса следующим образом:
пакет com.junittest.testcases;
Класс Test3:
import junit.framework.TestCase;
import org.junit.Ignore;
import org.junit.Rule;
import org.junit.Test;
import org.junit.rules.TestRule;
import annotations.DataSetRule;
import annotations.DataSets;
import com.junittest.test.MyClass;
public class Test3 extends TestCase{
MyClass m = new MyClass();
String group = "user";
@Rule
public TestRule dataSetRule = new DataSetRule();
@Test
public void test5() {
System.out.println("In Test 5");
//assertEquals(5, m.add(2,3));
}
@Test
public void test6() throws Exception {
org.junit.Assume.assumeTrue(group.equals("user"));
System.out.println("In Test 6");
//assertEquals(-2, m.sub(2,3));
}
@DataSets({"dataset","dataset1"})
@Test
public void test7() {
System.out.println("In Test 7");
}
@Ignore
@Test
public void test8() {
System.out.println("in test8");
}
}
Класс Test2:
package com.junittest.testcases;
import org.junit.Test;
import singletons.SingletonClass;
import com.junittest.test.MyClass;
import junit.framework.TestCase;
public class Test2 extends TestCase{
MyClass m = new MyClass();
public void setUp() {
SingletonClass sc = SingletonClass.getInstance();
System.out.println(SingletonClass.callCount);
}
@Test
public void test3() {
assertEquals(5, m.add(2,3));
}
@Test
public void test4() {
assertEquals(-2, m.sub(2,3));
}
}
Класс Test1:
package com.junittest.testcases;
import org.junit.Test;
import singletons.SingletonClass;
import com.junittest.test.MyClass;
import junit.framework.TestCase;
public class Test1 extends TestCase{
MyClass m = new MyClass();
public void setUp() {
SingletonClass sc = SingletonClass.getInstance();
System.out.println(SingletonClass.callCount);
}
@Test
public void test1() {
assertEquals(4, m.add(2,3));
}
@Test
public void test2() {
assertEquals(-1, m.sub(2,3));
}
}
И класс TestSuite:
package com.junittest.testcases;
import rules.SomeTest;
import singletons.SingletonClass;
import junit.framework.Test;
import junit.framework.TestSuite;
public class TestSuite1 {
public static Test suite() {
SingletonClass sc = SingletonClass.getInstance();
System.out.println(SingletonClass.callCount);
TestSuite suite = new TestSuite(TestSuite.class.getName());
suite.addTestSuite(Test1.class);
suite.addTestSuite(Test2.class);
suite.addTestSuite(Test3.class);
return suite;
}
}
Проблема заключается в том, что он игнорирует тег @Rule в классе Test3 при запуске класса TestSuite1 из JUnit из eclipse и, следовательно, вывод не так, как ожидалось. Почему он игнорирует тег @Rule. Есть ли альтернатива для выполнения всех трех случаев?