0

次の階層を持ついくつかのファイルをSDカードに書き込むAndroidテストプロジェクトがあります。

appresults
 |
 +--- gen
 |
 +--- results

Test.java ファイルを拡張するAndroidTestCaseと、テストは正しく実行されますが、実行するadb pullと、結果ディレクトリ内のファイルなど、一部のファイルが失われます。不思議なことに、gen ディレクトリ内のファイルが少しずつ入ってきます。つまりadb pull、実行して 4 を取得し、すぐにもう一度実行して 8 を取得し、それらがすべて表示されるまで繰り返します。

TestCaseただし、Test.java ファイルを拡張するadb pullと、すべてのファイルが問題なく表示されます。

シナリオの違いがあった可能性があるtearDown()と考えて何もしないようにやり過ぎましたが、役に立ちませんでした.super.tearDown()AndroidTestCase

テストメソッドの最後にログを追加して、名前、サイズ、最終更新日について欠落しているファイルをクエリし、適切な値を返したので、私の知る限り、テストが実行されている最後の 1 秒まで、そのファイルは現在。

私はまた、それがAndroidTestCase追加を行うことに気付きましたが、私が見ることができることから、これが行うことは、コンテキストがnullでないことを保証することだけです:testAndroidTestCaseSetupProperly

public void  [More ...] testAndroidTestCaseSetupProperly() {
     assertNotNull("Context is null. setContext should be called before tests are run",
             mContext);
 }

だから私の質問は、あなたのためにファイルAndroidTestCaseAndroid 4.0.3.クリーンアップしますか? もしそうなら、なぜいくつかのファイルをクリーンアップし、他のファイルをクリーンアップしないのですか?


リクエストごとに、以下は私が何をしているかを示すコードです:

File myPath = new File("some path");
FileOutputStream fos = new FileOutputStream(myPath);
OutputStreamWriter out = new OutputStreamWriter(fos, "UTF-8");
out.append("abcde");
out.close();
if (myPath.exists()) {
    Log.w(TAG, "Name: " + myPath.getAbsoluteFilePath());
    Log.w(TAG, "Size: " + myPath.length());
}

コードは次のような 2 つの警告を返します。

Name: some pathSize: 5

a) ファイルが正しい場所に作成され、b) サイズが正しいことを示すと、書き込みは成功しました。しかし、私のテストが終了するとすぐに、bam、adb pullそのディレクトリに何も出力されません。(結果その1)

4

0 に答える 0