मैं एक फ़ाइल पार्सर कक्षा के लिए एक परीक्षण लिख रहा हूँ। पार्स विधि को फ़ाइल नाम पैरामीटर के रूप में प्राप्त होता है, और इसे पार्स करने के लिए इसे खोलना चाहिए (डुह)।जुनीट परीक्षण के अंदर मेवेन गुणों को कैसे पुनर्प्राप्त करें?
मैंने एक परीक्षण फ़ाइल लिखी है, जिसे मैंने अपनी प्रोजेक्ट निर्देशिका के अंदर परीक्षण/संसाधन निर्देशिका में डाल दिया है, और इस फ़ाइल को मेरे पार्स का परीक्षण करने के लिए पास करना चाहूंगा। चूंकि यह प्रोजेक्ट सीवीएस में है, और दूसरों द्वारा छेड़छाड़ की जाएगी, मैं फ़ाइल पथ को हार्ड कोड नहीं कर सकता, इसलिए मैंने अपने परीक्षण में फ़ाइल नाम बनाने के लिए मेवेन $ {basedir} प्रॉपर्टी का उपयोग करने के बारे में सोचा। कुछ ऐसा:
public void parseTest() {
...
sut.parse(${basedir} + "src/test/resources/testFile");
...
}
क्या कोई जानता है कि मैं इसे कैसे प्राप्त कर सकता हूं?
1) एक प्रणाली संपत्ति (docs)
अपने पोम में आप की तरह कुछ कर सकता है के माध्यम से अपने परीक्षण के लिए फ़ाइल पथ दर्रा:
<project>
[...]
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.4.2</version>
<configuration>
<systemProperties>
<property>
<name>filePath</name>
<value>/path/to/the/file</value>
</property>
</systemProperties>
</configuration>
</plugin>
</plugins>
</build>
[...]
</project>
फिर
मैं विकल्प 2 ले जाऊंगा। लेकिन जैसा कि मैं क्लास.getResourceAsStream (स्ट्रिंग फ़ाइल नाम) विधि का उपयोग करने के बजाय फ़ाइल नाम पास करना चाहता हूं, मैं Class.getResource (स्ट्रिंग फ़ाइल नाम) का उपयोग कर रहा हूं .getFile()। धन्यवाद माइक – Alexandre
यह अच्छा है। बस जागरूक रहें कि अगर आपको कभी भी जार से परीक्षण करना पड़ता है (जो असंभव है) तो आपको कुछ अजीब व्यवहार मिल सकता है। –
यह सुनिश्चित नहीं है कि यह उत्तर कितना पूरा है - स्थानीय डीबी पते जैसे "एकीकरण परीक्षण" गुणों के बारे में क्या आप अपनी निजी सेटिंग्स.एक्सएमएल में स्टोर करना चाहते हैं? –