Простой тест OSGI Pax Exam, работающий на maven, но не на IDE

Я делаю очень простой тест Pax Exam.

При запуске с помощью maven «mvn verify» это успех. При запуске его с моей IDE я получаю следующую ошибку.

Кто-нибудь знает, если я пропускаю банку или это ошибка?

Спасибо,

java.lang.Exception: No tests found matching Method checkBundles(test.TestPaxExam) from org.junit.internal.requests.ClassRequest@1a19012
at org.junit.internal.requests.FilterRequest.getRunner(FilterRequest.java:37)
at com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:43)
at com.intellij.rt.execution.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:195)
at com.intellij.rt.execution.junit.JUnitStarter.main(JUnitStarter.java:63)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at com.intellij.rt.execution.application.AppMain.main(AppMain.java:120)

Вот мой тестовый класс:

package test;

import static org.junit.Assert.*;
import static org.ops4j.pax.exam.CoreOptions.*;

import org.junit.Test;
import org.junit.runner.RunWith;
import org.ops4j.pax.exam.Option;
import org.ops4j.pax.exam.junit.Configuration;
import org.ops4j.pax.exam.junit.JUnit4TestRunner;
import org.osgi.framework.BundleContext;

import javax.inject.Inject;

@RunWith(JUnit4TestRunner.class)
public class TestPaxExam {

@Inject
public BundleContext bc;

@Configuration
public Option[] config() {

    return options(
            junitBundles()
    );
}

@Test
public void checkBundles() {
    assertNotNull(bc);
}
}

А вот мой pom.xml:

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
     xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>

<groupId>TestPaxExam</groupId>
<artifactId>TestPaxExam</artifactId>
<version>1.0</version>

<properties>
    <exam.version>2.5.0</exam.version>
    <url.version>1.4.0</url.version>
</properties>

<dependencies>

    <dependency>
        <groupId>org.ops4j.pax.exam</groupId>
        <artifactId>pax-exam-container-native</artifactId>
        <version>${exam.version}</version>
        <scope>test</scope>
    </dependency>

    <dependency>
        <groupId>org.ops4j.pax.exam</groupId>
        <artifactId>pax-exam-junit4</artifactId>
        <version>${exam.version}</version>
        <scope>test</scope>
    </dependency>

    <dependency>
        <groupId>org.ops4j.pax.exam</groupId>
        <artifactId>pax-exam-link-mvn</artifactId>
        <version>${exam.version}</version>
        <scope>test</scope>
    </dependency>

    <dependency>
        <groupId>org.ops4j.pax.url</groupId>
        <artifactId>pax-url-aether</artifactId>
        <version>${url.version}</version>
        <scope>test</scope>
    </dependency>

    <dependency>
        <groupId>org.apache.felix</groupId>
        <artifactId>org.apache.felix.framework</artifactId>
        <version>3.2.2</version>
        <scope>test</scope>
    </dependency>

    <dependency>
        <groupId>ch.qos.logback</groupId>
        <artifactId>logback-core</artifactId>
        <version>0.9.20</version>
        <scope>test</scope>
    </dependency>

    <dependency>
        <groupId>ch.qos.logback</groupId>
        <artifactId>logback-classic</artifactId>
        <version>0.9.20</version>
        <scope>test</scope>
    </dependency>


<build>
    <plugins>
        <plugin>
            <artifactId>maven-compiler-plugin</artifactId>
            <configuration>
                <source>1.7</source>
                <target>1.7</target>
            </configuration>
        </plugin>
    </plugins>
</build>

</dependencies>

</project>

person lleclerc    schedule 09.01.2013    source источник
comment
У вас все еще есть проблемы с IntelliJ и PaxExam?   -  person kevcodez    schedule 27.09.2016


Ответы (1)


Я не вижу ничего подозрительного ни в вашем тесте, ни в вашем POM. Похоже на проблему с IntelliJ — в вашем тестовом классе не существует метода с сигнатурой checkBundles(test.TestPaxExam), поэтому JUnit вправе жаловаться.

person Harald Wellmann    schedule 10.01.2013
comment
Я попробовал этот же тестовый проект на новом компьютере с использованием Ubuntu, я не смог его скомпилировать, не добавив раздел ‹build› в pom.xml (уже обновил его в первом посте). Все та же проблема. - person lleclerc; 21.01.2013