2017-04-25 5 views
0

私はいつも特定のパラメータで実行される目標を持っています。私はそれらを何度も指定したくなく、POMファイルに含めたいと思うので、別のゴールがそのゴールを呼んでも、それらのパラメータは実行のために考慮されます。POMファイルでmavenコマンドラインオプションを指定する方法は?

これらのパラメータは、テストスコープのためのものであるため、グローバルスコープであってはなりません。


私は、プロファイルを使用しています春ブートのコードを持っています。私が-Dspring.profiles.active=TESTと期待される結果とのテストを実行する場合。だからでfailsafe:integration-testゴールを実行する必要があります。

答えて

1

あなたはここに2つのオプションがあります。それらを必要とするテストでアクティブなプロファイルを指定します。

@RunWith(SpringRunner.class) 
@SpringBootTest 
@ActiveProfiles("TEST") 
public class MyServiceTest { 

    @Autowired 
    MyService myService; 

    @Test 
    public void testServiceInitialized() throws Exception { 
     // ... 
    } 

これはまた、IDEは、直接テストを実行することができます。

オプション2は、フェイルセーフプラグインがテストにその-Dパラメータを渡すために知っているように、次のようになります。

http://maven.apache.org/surefire/maven-failsafe-plugin/integration-test-mojo.html#argLine

だから、このいずれかのパラメータが含まれているか、プラグインを設定プロパティ「argLine」に設定してください。このアプローチでは、これらのテストはmavenを使用してのみ実行されます。IDEではこの設定を再現する必要があります。

あなたも春ブートプラグインが直接これを可能にするいくつかのプロファイルを有効にするために、スプリングブーツを伝えるために必要がある場合:これはテストプロファイルの魅力のように働いたhttp://docs.spring.io/spring-boot/docs/current/maven-plugin/examples/run-profiles.html

+0

。 –

+0

問題は、メインアプリケーションを実行するのと同じことが、 'アクティブなプロファイルが見つかりませんでした。 'というメッセージが表示されないということです。 –

+1

遭遇するエラーは不明です。 ActiveProfilesはテスト専用です。特定のプロファイルに対してのみ有効な設定がある場合は、@Profileがあります。アプリケーションの特定のプロファイルを有効にする必要がある場合は、コマンドラインで-Dオプションを使用するか、spring-boot mavenプラグインでそれらを有効にしてください:http://docs.spring.io/spring-boot/docs/current /maven-plugin/run-mojo.html(プロパティの設定)。それは春からのエラーですか?プロファイルの要件はないので...または少なくとも1つの@Profileにすべてがありますか?だからデフォルトの豆は全くありませんか? – wemu

関連する問題