2011-10-20 8 views
1

要するに、開始作業ディレクトリを変更するためのJVMコマンドラインオプションはありますか?重要な場合は、jdk1.6.0_24を実行しています。ディレクトリを変更するためのJVMコマンドラインオプションはありますか?

背景:私は、Eclipseはエミュレーションなしに、ホストPC上でAndroidアプリケーションをテストするためのRobolectricと呼ばれるツールを使用しています

。 Robolectricはテストプロジェクトを作成する必要がありますが、テスト自体はテスト対象のAndroidプロジェクトから実行する必要があります。これは、「選択したプロジェクト、パッケージ、またはソースフォルダ内のすべてのテストを実行する」という設定で、実行コンフィギュレーションをテスト対象のプロジェクトに設定するEclipseから実行されます。

可能であれば、私が使用する別のツールInfinitest,doesn't allowあなたがテストの作業ディレクトリを指定するため、JVMのコマンドラインオプションからこれを行いたいと思います。ただし、JVMのコマンドラインオプションを指定することはできます。

回避策:私はより良い回避策を見つけるまで

、成功クルーゲは、AndroidプロジェクトからのAndroidManifest.xmlとRESフォルダをコピーすることでした。

答えて

1

「現在の作業ディレクトリ」は、JVMの概念ではなく、OSの概念であるため、バッチまたはシェルスクリプトの作成など、そのレベルでの解決策を見つける必要があります。

+0

ありがとうございます。私の質問の背景のセクションに記載されている理由から、コマンドラインオプションが必要です。 –

+0

ええ、私は見た。私が言っているのは、JVMの引数ではできないということです。 –

+0

Infinitestでは、フラグを変更するためだけにシェルスクリプトを呼び出すことはできません。 –

7

Java SEでは、「現在のディレクトリ」がシステムプロパティuser.dirに格納されます。

は手動で働くかもしれない-Dオプションを使って、この値を変更する:

java -Duser.dir=/some/directory .... 

をしかし、これはまた、Androidのに使用されるJVMに適用されるかどうかは知りません

+2

悪い考え。私がこれまでやっていたことは、「しない」と言います。それはせいぜい信頼できません。もちろん、それがAndroidでも変わっていない限り。しかし、これは単なるテストスイートです。 Androidの中で動作していませんか? –

+1

私はこのアプローチを定期的に使用しています。 –

+1

この変数を変更することは推奨されず、[このレスポンス](http://stackoverflow.com/questions/1234795/why-is-the-user-dir-system-property-working-in-java/1234880# 1234880)。それは私のために働かなかった。 –

0

私はrobolectricを実行しているになりますMavenビルド内のテストこれにより、テストを簡単に実行できます。 Eclipse内でも。おそらくMavenには無限のサポートもあります。

+0

Infinitestのマニュアルには、Mavenのサポートが記載されていません。私はsbtを使って遊んでいて、Androidアプリケーションを正常に構築しましたが、私の通常の開発にまだ採用していません。私は確かに、sbtがビルド後に実行される自動テストのいくつかのタイプをサポートしていると確信していますが、これは無限に置き換わると思います。 –

+0

あなたはsbtアンドロイドプラグインの権利があることを知っています。 –

+0

はい、それは私がビルドを行った方法です。 –