spring - ककड़ी के साथ स्प्रिंग बूट प्रोफ़ाइल को सक्रिय कैसे करें



testing spring-boot (1)

मैं अपने ककड़ी परीक्षणों के लिए एक वसंत प्रोफ़ाइल को सक्रिय करने के लिए एक अच्छी तरह से ढूंढ रहा हूं। ककड़ी परीक्षणों को एक सेवा के एक स्टबडे संस्करण का उपयोग करने की आवश्यकता होती है जो कि निम्न के साथ चिह्नित है:

@Profile("test")
@Component
class FooServiceStub extends FooService {...}

नियमित सेवा इस तरह दिखती है:

@Profile("prod")
@Component
class FooService {...}    

मेरी आवश्यकताएं:

  • एमवीएन के साथ ककड़ी परीक्षण चलाएं: $ mvn test
  • आईडीई में ककड़ी परीक्षण चलाएं
  • बिल्ड सर्वर पर ककड़ी परीक्षण चलाएं
  • -Dspring.profiles.active = ... तर्क का उपयोग करने की कोई ज़रूरत नहीं है

मैंने पाया स्रोत, लेकिन मेरी समस्या हल नहीं है:


मैंने इस मुद्दे को एक एनोटेशन के साथ हल किया है जो मैंने अपने फ़ीचरस्टेप कक्षा में डाल दिया है।

एनोटेशन:

उस पर @ एक्टिवफॉफाइल नोट करें।

import java.lang.annotation.*;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.ActiveProfiles;
import org.springframework.test.context.ContextConfiguration;

@Target(ElementType.TYPE)
@Retention(RetentionPolicy.RUNTIME)
@ContextConfiguration
@ActiveProfiles("test")
@SpringBootTest(
    webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT, 
    classes = FeatureTestConfiguration.class)
public @interface FeatureFileSteps {
}

विन्यास वर्ग बहुत बुनियादी है:

@Configuration
@Import(FooApplication.class)
public class FeatureTestConfiguration {

}

एनोटेशन का उपयोग करना:

सुविधा चरण में टिप्पणी को जोड़ना:

@FeatureFileSteps
public class FooFeatureSteps {
    @Given(...)
    @When(...)
    @Then(...)
}

अब जब ककड़ी फीचर टेस्ट चलाते हैं, या तो मेरी IDE से, मेवेन के साथ कमांड लाइन से या बिल्ड सर्वर पर, मेरा परीक्षण FooServiceSTub का उपयोग कर रहा है और मेरा परीक्षण पास है





feature-file