0

Web サービスをテストしようとしています。この Web サービスは、ejb と jpa を使用してデータを取得します。だから私はこれを成し遂げるためにarquillian拡張を使いたいと思っています。

これは私のarquillianテストクラスです:

@RunWith(Arquillian.class)
public class PersonWebServiceIT {

    private PersonWebService service;

    @Deployment(testable = false)
    public static Archive<?> createDeployment() {
        return ShrinkWrap
                .create(ZipImporter.class, "test.ear")
                .importFrom(new File("simple-webservice-ear-1.0.0-SNAPSHOT.ear"))
                .as(EnterpriseArchive.class);
    }

    @Test
    @UsingDataSet("dataset.yml")
    @SneakyThrows
    public void testFindPersons(@ArquillianResource final URL deploymentUrl) {
        loadService(deploymentUrl);

        Assert.assertEquals(2, service.findPersons().size());
    }

    private void loadService(final URL deploymentUrl)
        //load webservice
    }

}

これは私の datasets/dataset.yml ファイルです:

person:
  - id: 1
    firstName: "stijn"
  - id: 2
    firstName: "cremers"

私のarquillian.xml:

<?xml version="1.0" encoding="UTF-8"?>
<arquillian xmlns="http://jboss.com/arquillian" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="
    http://jboss.org/schema/arquillian
    http://jboss.org/schema/arquillian/arquillian-1.0.xsd">

 <extension qualifier="persistence">
        <property name="defaultDataSource">java:/DefaultDS</property>
    </extension>

</arquillian>

テスト データが読み込まれません。間違った形式の yml ファイルを試してみましたが、それでもエラーは発生しません。

4

2 に答える 2

0

問題は、テスト実行モードにあります。@Deployment属性でyour を定義するとtestable=false、すべてのテストがクライアント モードで実行されます。つまり、テストはコンテナー内では実行されません。

Arquillian Persistence Extension (1.0.0.Alpha5 現在) は、クライアント モードでのテストの実行をサポートしていません。現在、コンテナ内テストのみがサポートされています。APE でのクライアント モード テストのサポートは、将来のリリースで提供される可能性があります。

于 2013-02-05T07:34:01.117 に答える
0
<property name="defaultDataSource">java:/DefaultDS</property>

サーバーで定義されているデータソースを指定しています。

クライアント モードでは、テスト ケースはコンテナの外部で実行されます (つまり、他の JVM)。

そのため、永続化拡張のみがデータ ソースを利用できないため、arquillian 永続化拡張クライアント モードを使用できません。

arquillian.xml ファイルでデータソース名の代わりに jdbc url を指定する必要がある場合は、永続化拡張機能を使用できます。

于 2013-02-20T05:10:30.243 に答える