2016-08-22 18 views
0

AWS Device FarmでGalenテストを実行する際に問題が発生しました。src/tests/javaフォルダに.gspecファイルを適切にパッケージングして、POM.xmlに同じファイルを提供していますが、AWSデバイスファームでGalenテストを実行する際の問題

java.io.FileNotFoundException: src/test/java/HomePage.gspec at 
com.galenframework.speclang2.pagespec.PageSpecReader.read(PageSpecReader.java:43) 
at com.galenframework.api.Galen.checkLayout(Galen.java:68) at 
com.galenframework.api.Galen.checkLayout(Galen.java:59) at 
com.galenframework.api.Galen.checkLayout(Galen.java:154) at 
com.galenframework.api.Galen.checkLayout(Galen.java:128) at 

これは、ローカルデバイス上で魔法のように動作します:それはすなわちするFileNotFound例外がスローされます農場のテスト。

答えて

2

私はAWS Device Farmチームのエンジニアです。

私はGalenのテストフレームワークに精通していません。私たちは、フレームワークがデバイスファーム上で動作することを正式にテストしていません。

しかし、私はあなたの説明から行うことができますいくつかのこと:

1. .gspecファイル:フレームワークを始めるためにこのファイルを読み込むために探しているようです。 appium/seleniumに基づくテストファイルは、パッケージ化中にsrc/test/resourcesの下に置くことができます。これにより、ファイルはJARのルートの下の* SNAPSHOT-tests.jarファイルに置かれます。

このjarファイルは、テスト実行環境のCLASSPATHで使用できます。つまり、直接アクセスできます。 * .test.jarファイルで.gspecファイルの有無を調べることで、デバイスファームにアップロードする前に確認することで時間を節約できます。

代わりに、ファイルをsrc/test/resources/com(または任意のパッケージ構造)の下に置きます。次に、テストコード内のファイルにアクセスするには、そのファイルがリソースのパッケージ構造の下にあると仮定することができます。その場合、ファイルパスは "com/yourfile.gspec"になります。

希望すると、さらに進んでください。

+0

あなたがもともと投稿とあなたは同じエラーを取得していますか? – NikofTime

+0

ご返信ありがとうございます。 提案どおり、私たちは同様の方法で、つまり.gspecファイルをsrc/test/resources/comの下に置いて、リソースに直接置いてみました。また、パッケージ化されたJAR、つまりSNAPSHOT-tests.jarで.gspecファイルを見ることもできます。また、このJARの内容を抜粋し、gspecファイルを作成しました。だから、これらのアプローチはすべてうまくいかない。 また、前に示したとおり、ファームに物理デバイスがあると仮定しているため、物理デバイス上のGalenテストをローカルで正常に実行できます。 –

+0

はい同じエラーが発生しています。ファイルが見つかりません –

0

こんにちは、mavenパッケージのファイルパスとPOMファイルを使用しているコードスニペットの添付スクリーンショットをご覧ください。

POMFile

FilePathCode

+1

は絶対パスの代わりに相対パスを使用しようとします。 'HomePage.gspec'。私のサンプルプロジェクトの1つがAWSデバイスファーム上で動作する場合、試してみることができます:https://github.com/hypery2k/galen_samples/tree/master/junit – hypery2k

+0

こんにちは、 私はファイルパスを変更して、現在UnsatisfiedLinkError例外を投げています: java.lang.UnsatisfiedLinkError:/usr/lib/jvm/jdk1.8.0_65/jre/lib/amd64/libawt_xawt.so:libXtst.so.6:共有オブジェクトファイルを開くことができません:Javaではこのようなファイルまたはディレクトリはありません。 でjava.lang.ClassLoader.loadLibraryでjava.lang.ClassLoader.loadLibrary0(ClassLoader.java:1938)(ClassLoader.java:1821)でlang.ClassLoader $ NativeLibrary.load(ネイティブメソッド)この に助けてくださいよろしくお願いいたします。 –

+0

こんにちは、 あなたはこれについてあなたの考えをお寄せいただけますか? よろしくお願いします。 –

関連する問題