0

JUnit を使用する場合、ロギングに使用するディレクトリを JVM プロパティとして渡します。これは、コマンド ラインと Eclipse で正常に機能します。ただし、同じプロパティを Builder テスト タスクに渡すと機能しません。

test.using :properties => { :"server.name" => "tester", :"log.dir" => log_dir}

なぜこれが起こるのか知っています。プロパティは、外部ではなく JVM の内部から設定されています。これは、実行時 (静的ログ クラスが読み込まれるとき) にプロパティがまだ設定されていないことを意味します。後でプロパティをクエリすると (たとえば、単体テスト内から)、正しく設定されていることがわかります。

誰かが回避策を知っていますか?

ところで、私たちは log4J を使用していますが、質問は Buildr によって設定された JVM プロパティにアクセスする必要があるすべての静的クラスに適用されます。

4

2 に答える 2

0

JUnit を使用していると仮定すると、フォークされた JVM でテストが確実に実行されるようにすることができます。

test.using :fork => :once

しかし、それがデフォルトの動作だと思いましたか?どういうわけかこれをオーバーライドしていますか?( http://buildr.apache.org/languages.htmlを参照)

于 2013-02-02T17:44:11.687 に答える
0

このコードは、log4j.properties ファイルで log.dir を定義し、ビルドファイルで設定します。

test.using :properties => { :"log.dir" => '/tmp'}

私のセットアップは

  • ビルダー1.4.7
  • ルビー1.9.3

h番目

于 2013-08-09T10:37:37.977 に答える