Mavenを使用してSpringBootアプリケーションを開発しています。テスト中に予約メソッドが呼び出されました
@Component
アノテーションを持つクラスがあり、メソッドはm
で、@Scheduled(initialDelay = 1000, fixedDelay = 5000)
アノテーションがあります。ここではfixedDelay
をに設定すると、タスクの完了から計測された呼び出し間隔を指定することができます。
私はまた、メインクラスで@EnableScheduling
注釈ました:
@RunWith(SpringRunner.class)
@SpringBootTest
public class BankitCrawlerTests {
...
}
スケジュールされたタスクm
はまた、すべての5を実行している:私はテストを実行するたびに
@SpringBootApplication
@EnableScheduling
public class FieldProjectApplication {
public static void main(String[] args) {
SpringApplication.run(FieldProjectApplication.class, args);
}
}
は今、として定義されます秒。
もちろん、アプリケーションが実行されるたびにスケジュールされたタスクを実行したいだけです。テストを実行したときにスケジュールされたタスクが実行されないようにするにはどうすればよいですか?あなたが好きな個別の設定クラスに@EnableScheduling
を抽出することができます
あなたは、私は私のテストでスケジューリングをしたくないことを理解していましたか? '@Profile("!test ")'はテストでは意味がありませんか? – nbro
"テスト"プロファイルがアクティブでない場合、構成クラスが作成されることを意味します。 –
[this solution](http://stackoverflow.com/questions/29014496/disable-enablescheduling-on-spring-tests)についてどう思いますか?私は特定の設定を作成したことがありません(メインクラスに '@ SpringBootApplication'で注釈を付けることは別です)。どこに新しい設定を入れるべきですか? – nbro