2017-04-25 50 views
0

我有一個總是運行某些參數的目標。我不想一次又一次指定它們,並希望包含在POM文件中,以便即使另一個目標調用該目標時,也會考慮執行這些參數。如何在POM文件中指定maven命令行選項?

這些參數不應在全局範圍內,因爲它們僅用於測試範圍。


我在使用配置文件的spring-boot中有一個代碼。如果我使用-Dspring.profiles.active=TEST運行測試,則會出現預期結果。因此要運行failsafe:integration-test目標需要-Dspring.profiles.active=TEST

回答

1

你這裏有兩種選擇:在需要它們的測試指定活動概況:

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

    @Autowired 
    MyService myService; 

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

這也使IDE直接運行測試。

方案二是讓故障安全插件知道該-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(設置屬性)。這是來自Spring的錯誤嗎?由於沒有要求配置文件...或者你至少有一個@Profile?那麼根本沒有默認的bean? – wemu

相關問題