2013-04-16 3 views
2

Я пытаюсь запустить тесты jUnit для приложения RCP Eclipse с помощью Tycho.Manifest.mf не найден org.junit

Для этого я создал простой тест jUnit, который запускается, когда я нажимаю «Выполнить как> jUnit-Test». Но когда я хочу запустить его с помощью теста mvn, он не найдет jUnit.

Я прочитал в Интернете, что мне нужно добавить jUnit к пути сборки. -> Я уже это сделал. Кроме того, я прочитал, что мне нужно добавить jUnit как пакет требований в файл Manifest.mf. Но есть проблема! Я получаю сообщение об ошибке: Bundle 'org.junit' canot разрешается.

Мой файл MANIFEST.MF выглядит следующим образом:

Manifest-Version: 1.0 
    Bundle-ManifestVersion: 2 
    Bundle-Name: Tests 
    Bundle-SymbolicName: myPackageName 
    Bundle-Version: 1.0.0.qualifier 
    Bundle-Vendor: myCompany 
    Fragment-Host: thePackageWhereTestesPluginIs 
    Bundle-RequiredExecutionEnvironment: JavaSE-1.6 
    Require-Bundle: org.junit 

Где моя ошибка? Когда я беру org.junit4, он не может быть разрешен либо ...

Спасибо!

Update:

Теперь я использую вместо требует расслоения:

Import-package: org.junit4 

(или org.junit, его поведение такое же), и она может быть решена в manifest.mf файле , Но когда я запустил его, я получаю следующую ошибку: [ERROR] -> [Помощь 1] org.apache.maven.InternalErrorException: Внутренняя ошибка: java.lang.RuntimeException: org.osgi.framework.BundleException: Bundle myTestBundle не может быть разрешено Ошибки при разрешении: Bundle myTestBundle - Отсутствует ограничение: Import-Package: org.junit4; version = "0.0.0"

Как я могу это решить?

спасибо !!

Мой ПОМ файл тестового пучка:

<?xml version="1.0" encoding="UTF-8"?> 
<project 
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" 
xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <modelVersion>4.0.0</modelVersion> 
<parent> 
     <artifactId>myProject.tycho.master</artifactId> 
     <groupId>myProject</groupId> 
     <version>0.0.1-SNAPSHOT</version> 
     <relativePath>../myProject.tycho.master/pom.xml</relativePath> 
    </parent> 
    <groupId>myProject</groupId> 
    <artifactId>myProject.myTestBundle</artifactId> 
    <version>1.0.0-SNAPSHOT</version> 
    <packaging>eclipse-test-plugin</packaging> 

<dependencies> 
<dependency> 
    <groupId>junit</groupId> 
    <artifactId>junit</artifactId> 
    <version>4.8.1</version> 
</dependency> 
</dependencies> 
</project> 

Родитель ПОМ:

<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" 
xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> 

<modelVersion>4.0.0</modelVersion> 
<groupId>myProject</groupId> 
<artifactId>myProject.tycho.master</artifactId> 
<version>0.0.1-SNAPSHOT</version> 
<packaging>pom</packaging> 

<properties> 
    <tycho.version>0.17.0</tycho.version> 
</properties> 

<modules> 
    <module>../myProject.myTestBundle</module> 

</modules> 



<repositories> 
    <!-- configure p2 repository to resolve against --> 
    <repository> 
     <id>Repository1</id> 
     <layout>p2</layout> 
     <url>url-to-a-p2-site-on-my-server</url> 
    </repository> 
</repositories> 

<build> 
    <plugins> 
     <plugin> 
      <groupId>org.eclipse.tycho</groupId> 
      <artifactId>tycho-maven-plugin</artifactId> 
      <version>${tycho.version}</version> 
      <extensions>true</extensions> 
     </plugin> 
     <plugin> 
      <groupId>org.eclipse.tycho</groupId> 
      <artifactId>target-platform-configuration</artifactId> 
      <version>${tycho.version}</version> 
      <configuration> 
       <resolver>p2</resolver> 
       <pomDependencies>consider</pomDependencies> 
       <target> 
        <artifact> 
         <groupId>myGroupId</groupId> 
         <artifactId>myGroupId.target</artifactId> 
         <classifier>targetPlatform</classifier> 
        </artifact> 
       </target> 
       <environments> 
        <environment> 
         <os>macosx</os> 
         <ws>cocoa</ws> 
         <arch>x86_64</arch> 
        </environment> 
        <environment> 
         <os>linux</os> 
         <ws>gtk</ws> 
         <arch>x86</arch> 
        </environment> 
        <environment> 
         <os>linux</os> 
         <ws>gtk</ws> 
         <arch>x86_64</arch> 
        </environment> 
        <environment> 
         <os>win32</os> 
         <ws>win32</ws> 
         <arch>x86</arch> 
        </environment> 
        <environment> 
         <os>win32</os> 
         <ws>win32</ws> 
         <arch>x86_64</arch> 
        </environment> 
       </environments> 
       <ignoreTychoRepositories>false</ignoreTychoRepositories> 
      </configuration> 
     </plugin> 
    </plugins> 
</build> 
    </project> 

Update: Я думаю, что проблема решена! Я добавил jUnit на мои сайты обновления p2, и теперь у меня нет ошибок!

+0

Вы можете разместить файл POM, потому что я предполагаю, что вы пропустили, чтобы добавить зависимость JUnit в ваш файл pom. – khmarbaise

+0

Теперь я добавил его, спасибо за вашу помощь !! – tralala

+0

Tycho должен печатать лучшие сообщения об ошибках: https://bugs.eclipse.org/bugs/show_bug.cgi?id=405790 – oberlies

ответ

1

Я установил мою проблему, добавив JUnit как сайт p2 Update и использовать его в качестве Manifest.mf:

Require-Bundle: org.junit; bundle-version = "4.11.0" 
Смежные вопросы