मैं एकीकरण परीक्षण के लिए, मेरे परीक्षण वर्गों पर स्प्रिंग बूट की सुविधाजनक एनोटेशन का उपयोग कर रहा हूं।एक ही एनोटेशन में कई स्प्रिंग टेस्ट एनोटेशन कैसे गठबंधन करें?
@RunWith(SpringJUnit4ClassRunner.class)
@SpringApplicationConfiguration(classes = Config.class)
@IntegrationTest
@Sql({"classpath:rollback.sql", "classpath:create-tables.sql"})
@Transactional
मैं यह काफी कॉपी/प्रत्येक परीक्षा वर्ग पर इस पूरे ब्लॉक को चिपकाने के लिए बदसूरत पाया है, इसलिए मैं अपने खुद के @MyIntegrationTest
एनोटेशन बनाया है
@SpringApplicationConfiguration(classes = Config.class)
@IntegrationTest
@Sql({"classpath:database-scripts/rollback.sql", "classpath:database-scripts/create-tables.sql", "classpath:database-scripts/insert-test-data.sql"})
@Transactional
@Target({ElementType.TYPE, ElementType.METHOD})
@Retention(value = RetentionPolicy.RUNTIME)
@interface MyIntegrationTest {
}
हालांकि, अगर मैं अपने नए एनोटेशन में @RunWith(SpringJUnit4ClassRunner.class)
जोड़ने , तो जुनीट अपने डिफ़ॉल्ट धावक के साथ भाग जाएगा - जो वांछनीय नहीं है। तो अभी के लिए मुझे दो एनोटेशन का उपयोग करना होगा।
@RunWith(SpringJUnit4ClassRunner.class)
@MyIntegrationTest
मैं इसे अभी के लिए ठीक है, लेकिन वहाँ इन टिप्पणियों को संयोजित करने का उपाय है लगता है, तो मैं एक भी एनोटेशन उपयोग करने में सक्षम हो सकता है?
मुझे लगता है कि यह सबसे अच्छा है जो आप प्राप्त कर सकते हैं ... http://docs.spring.io/spring/docs/current/spring-framework-reference/html/testing.html#integration-testing-annotations- मेटा – sodik
ठीक है मैंने जुनीट कोड में थोड़ा सा खोला है। 'एनोटेटेडबिल्डर 'कक्षा एनोटेशन के माध्यम से किसी भी रनर का पता लगाने की कोशिश कर रही है, और वे इसका उपयोग करते हैं:' एनोटेशन = currentTestClass.getAnotation (RunWith.class); ', इसलिए यह किसी भी" एनोटेशन पर एनोटेशन "नहीं लाएगा। यकीन नहीं है कि इसे क्यों लागू नहीं किया गया था, लोगों को उनके गिटहब पर पूछेगा। – Guillaume