0

インストルメント済みのテストを書きましたが、アサーションは成功していますが、実行される設定に関係なく、実行は決して終了しない/終了します。 CIセットアップに最適ではありません。Androidインストゥルメントテスト無限実行

私は、次の実行構成で、以下のコードを実行しようとしている:

  • 実行をテストクラスのすべてのテスト - このインスタンスでは、実行が最初
  • を実行した後に、第2のテストに進みませんテストパッケージ内のすべてのテストを実行する - このインスタンスでは、実行は最初のテストの実行後に2番目のテストに進まないが、他のクラスの計測済みテストはすべて成功する。
  • ラン私は私のテストコードを取り出し、(私は以下の行ったように)コードの実行が完了しない非常に簡単なテストを中に入れた場合でも、テストクラス別途

で両方のテスト。しかし - 私は講師によって書かれたシンプルなゲームエンジンの上に書かれているクラス、私はすべての作業を書いたテストコードとアサーションでそのタッチ動作をテストしようとしている状況については

public class TestClass { 

    private MainActivity mainActivity; 
    private MyScreen myScreenInstance; 

    @Rule 
    public ActivityTestRule mActivityRule = new ActivityTestRule<>(MainActivity.class); 

    @Before 
    public void setUp() throws FileNotFoundException { 
     mainActivity = (MainActivity) mActivityRule.getActivity(); 
    } 

    @Test 
    public void test_1() throws FileNotFoundException { 
     assertEquals(1,2); 
    } 

    @Test 
    public void test_2() throws FileNotFoundException { 
     assertEquals(2,2); 
    } 


} 

問題は、実行が完了しないということです。

ActivityTestRuleを破壊するために何らかの「ティアダウン」方法が必要ですか?この実行が正しく完了するためには何ができますか?

興味深いことに、これらの非常に単純なアサーションは、Nexus 7エミュレータでAPI 25で正常に動作しますが、API 23を実行するNexus 5エミュレータで実行すると、前述のようにテストが完了しません。

詳しい情報:

  • は手順をステップ実行、デバッガとをゆっくりテストを実行している - 彼らはすべてのパス、彼らが
  • @AfterへのThread.sleep(1000)(ティアダウン)を追加する必要がありますようにメソッドでは、説明されている問題は発生しなくなります。しかし、これは私たちの実行がまだfirebaseテストラボ(CI)でタイムアウトするので、この問題は解決しません。

以下は私が開始した実行の写真であり、5分後に掛かっています。 < 2秒で2回のテストを完了しているはずです。

enter image description here

+0

この投稿に新しい情報がいくつか掲載されていますが、これを解決するためにまだ積極的に取り組んでいます –

答えて

0

私は今、通常、開発者は、しかし、原因私はそうすることはなかったで働いていますフレームワークの性質上、onView呼び出しを追加されるだろう、この問題を解決してきました。私はただのゲームは、内で実行され、現在のパスをテストすることを主なエリアをクリックして、セットアップに

onView(withId(R.id.activity_fragment_id)).perform(click()); 

を追加しました。

関連する問題