JUnit を使用する場合、ロギングに使用するディレクトリを JVM プロパティとして渡します。これは、コマンド ラインと Eclipse で正常に機能します。ただし、同じプロパティを Builder テスト タスクに渡すと機能しません。
test.using :properties => { :"server.name" => "tester", :"log.dir" => log_dir}
なぜこれが起こるのか知っています。プロパティは、外部ではなく JVM の内部から設定されています。これは、実行時 (静的ログ クラスが読み込まれるとき) にプロパティがまだ設定されていないことを意味します。後でプロパティをクエリすると (たとえば、単体テスト内から)、正しく設定されていることがわかります。
誰かが回避策を知っていますか?
ところで、私たちは log4J を使用していますが、質問は Buildr によって設定された JVM プロパティにアクセスする必要があるすべての静的クラスに適用されます。