2

誰かがBndtoolsを使用してPaxExamJunitテストを実行しようとしたことがあり、アドバイスをくれることがありますか?私は自分で試しましたが、Mavenがないと、すべての依存関係をダウンロードするのは面倒です。

私がこれまでにしたこと:

  1. Central MavenからPaxExamの依存関係をダウンロードします(もっと簡単な方法はありますか?)
  2. cnf/bnd.bndにすべての依存関係を含むプロパティを作成します
  3. テストを書きたいビルドパスにプロパティを追加します
  4. テストの実行に失敗し、さらに多くの依存関係が欠落しているため、1に戻ります。:D

私はPaxExamを使用したいと思います。Bndtoolsの統合テストとしてAntJunitタスクで使用する方が簡単です。これらはテストレポートのみを生成しますが、実際には「Junitテスト」ではないためです。

後のシナリオ:

  1. HudsonとAntを使用したプロジェクトの構築
  2. HudsonはJunitAntTaskも実行する必要があります。テストに失敗すると、ビルドプロセスも停止します。

上記のシナリオは、OSGi環境を実行せずに通常のJunit4テストですでに機能しますが、統合テストを実行したいと思います。

誰かが私を助けることができますか?

ご挨拶。

4

1 に答える 1

4

プロジェクトのビルドにMavenを使用しなくても、Mavenアーティファクトとその推移的な依存関係をダウンロードするためにMavenを使用できます。これを行うには、最初にMavenをインストールする必要があります。次に、空のディレクトリを作成し、そのディレクトリ内に。という名前のファイルを作成しますpom.xml。Pax Examの場合、これは次のようになります。

<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>test</groupId>
    <artifactId>test</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <packaging>pom</packaging>
    <properties>
        <exam.version>2.5.0</exam.version>
        <url.version>1.4.2</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.29</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>ch.qos.logback</groupId>
            <artifactId>logback-classic</artifactId>
            <version>0.9.29</version>
            <scope>test</scope>
        </dependency>
    </dependencies>
</project>

PaxExamのドキュメントから依存関係のリストを取得しました。次に、コマンドラインを開き、を作成したディレクトリに移動してpom.xml、次のコマンドを実行します。

mvn dependencies:copy-dependencies

mvn(これは、コマンドラインからコマンドを使用できるようにMavenがインストールされていることを前提としています)。これで、mavenは、で指定した依存関係のすべての推移的な依存関係をフェッチし、デフォルトpom.xmlでそれらを保存しtarget/dependencyます。

于 2012-08-01T09:52:32.730 に答える