2016-02-14 9 views
-2

У меня есть несколько @test метода в классе во время работы paxexam он терпит неудачу с ниже ExceptionMultiple метод @Test в классе Java терпит неудачу с java.lang.Exception: Нет Runnable методы не

java.lang.Exception: No runnable methods 
    at org.junit.runners.BlockJUnit4ClassRunner.validateInstanceMethods(BlockJUnit4ClassRunner.java:169) 
    at org.junit.runners.BlockJUnit4ClassRunner.collectInitializationErrors(BlockJUnit4ClassRunner.java:104) 
    at org.junit.runners.ParentRunner.validate(ParentRunner.java:355) 
    at org.junit.runners.ParentRunner.<init>(ParentRunner.java:76) 
    at org.junit.runners.BlockJUnit4ClassRunner.<init>(BlockJUnit4ClassRunner.java:57) 
    at org.ops4j.pax.exam.invoker.junit.internal.ContainerTestRunner.<init>(ContainerTestRunner.java:54) 
    at org.ops4j.pax.exam.invoker.junit.internal.ContainerTestRunnerBuilder.runnerForClass(ContainerTestRunnerBuilder.java:48) 
    at org.junit.runners.model.RunnerBuilder.safeRunnerForClass(RunnerBuilder.java:59) 
    at org.ops4j.pax.exam.invoker.junit.internal.ContainerTestRunnerClassRequest.getRunner(ContainerTestRunnerClassRequest.java:61) 
    at org.junit.internal.requests.FilterRequest.getRunner(FilterRequest.java:31) 
    at org.junit.runner.JUnitCore.run(JUnitCore.java:138) 

Ниже это код экзамена pax. Когда я запускаю этот код, я получаю исключение. Добавление еще один пункт, если я изменить эту аннотацию @ExamReactorStrategy (PerClass.class) до @ExamReactorStrategy (PerMethod.class) это будет работать проблема заключается в тест-контейнера перезапускается после каждого метода

@RunWith(PaxExam.class) 
@ExamReactorStrategy(PerClass.class) 
public class Integration5TestCases { 

    private static Logger LOG = LoggerFactory.getLogger(IntegrationTestCases.class); 

    @Inject 
    private BundleContext bc; 


    @Inject 
    protected FeaturesService featuresService; 

    /** 
    * To make sure the tests run only when the boot features are fully 
    * installed 
    */ 
    @Inject 
    BootFinished bootFinished; 



@Configuration 
    public static Option[] configuration() throws Exception { 
     MavenUrlReference oracleLib = maven() 
       .groupId("com.oracle") 
       .artifactId("ojdbc6") 
       .version("11.2.0") 
       .type("jar"); 

     MavenUrlReference dbHandler = maven().groupId("Oracle") 
       .artifactId("DBHandler") 
       .versionAsInProject() 
       .type("xml") 
       .classifier("features"); 

     return new Option[] { 
       returnNewKarafInstance(), 
       systemProperty(PaxExamConstants.ORCALESYSPROPNAME).value(dbHandler.getURL()), 
       KarafDistributionOption.debugConfiguration("8898", true), 
       bootClasspathLibrary(oracleLib), 
       configureConsole().ignoreLocalConsole(), 
       logLevel(LogLevel.INFO), 
       keepRuntimeFolder(), 

     }; 
    } 

    private static KarafDistributionBaseConfigurationOption returnNewKarafInstance(){ 
     return karafDistributionConfiguration().frameworkUrl(maven().groupId("org.apache.karaf").artifactId("apache-karaf") 
       .type("zip").versionAsInProject()) 
       .unpackDirectory(new File("target/paxexam/unpack/")) 
       .useDeployFolder(false); 
    } 


    @Inject 
    SessionFactory commandProcessor; 



    @Test 
    public void test1() throws Exception { 
    System.out.println("sd"); 

    } 

@Test 
    public void test2() throws Exception { 
    System.out.println("sd"); 

    } 
} 
+1

Не могли бы вы показать нам код. –

+0

Вы импортируете 'org.junit.Test' или что-то еще, например' org.testng.annotations.Test'? –

+0

Я добавил код в вопрос, пожалуйста, посмотрите – Charity

ответ

0

Это происходит потому, что JUnit Lib был дважды инициализируется внутри контейнера карафа. Спасибо за помощь, ребята!