पर ध्यान दिया गया है मेरे पास है। जार फ़ाइल जिसमें टेस्टएनजी परीक्षण पर चलाने के लिए आवश्यक फाइलें हैं। मैं उस जार फ़ाइल के अंदर एक विशिष्ट एक्सएमएल फ़ाइल चलाने के लिए चाहता हूं। मेरी आवश्यकता यह है कि पर इंगित टेस्टएनजी परीक्षण निष्पादित करना संभव है। अगर फ़ाइल है तो मैं ऐसा कैसे कर सकता हूं।टेस्टएनजी परीक्षणों को कैसे चलाने के लिए एक जार
उत्तर
आप testng.xml पढ़ सकते हैं और इसे जार निकालने के बिना प्रोग्रामेटिक रूप से चला सकते हैं।
सबसे पहले आपको एक्सएमएल पढ़ने और इसे पार्स करने की आवश्यकता है। यहां मैंने अपने एक्सएमएल फ़ाइल प्रारूप से मेल खाने के लिए कुछ बीन कक्षाएं बनाई हैं। सूट
public Suite getTestSuiteFromJar(String jarFilePath, String filename) {
File jarFile = new File(jarFilePath);
Suite suite = null;
try {
if (jarFile.isFile()) {
final JarFile jar = new JarFile(jarFile);
InputStream in = jar.getInputStream(new ZipEntry(filename));
suite = XmlUtil.parseSuite(in);
jar.close();
}
} catch (IOException | JAXBException | SAXException | ParserConfigurationException e) {
e.printStackTrace();
}
return suite;
}
public static Suite parseSuite(InputStream is) throws JAXBException, SAXException, ParserConfigurationException {
JAXBContext jaxbContext = JAXBContext.newInstance(Suite.class);
Unmarshaller jaxbUnmarshaller = jaxbContext.createUnmarshaller();
return (Suite) jaxbUnmarshaller.unmarshal(is);
}
अंत में हम चलाते हैं: यह मेरा सेम वर्ग है, बनाते हैं तो आप वर्ग है जो आपकी आवश्यकता
@XmlRootElement(name = "suite")
public class Suite {
private String name;
private String verbose = "1";
private boolean parallel =false;
private List<Test> testCases = new ArrayList<Test>();
private List<Parameter> parameters = new ArrayList<Parameter>();
@XmlAttribute
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
@XmlAttribute
public String getVerbose() {
return verbose;
}
public void setVerbose(String verbose) {
this.verbose = verbose;
}
@XmlAttribute
public boolean isParallel() {
return parallel;
}
public void setParallel(boolean parallel) {
this.parallel = parallel;
}
@XmlElement(name = "test")
public List<Test> getTestCases() {
return testCases;
}
public void setTestCases(List<Test> testCases) {
this.testCases = testCases;
}
@XmlElement(name = "parameter")
public List<Parameter> getParameters() {
return parameters;
}
public void setParameters(List<Parameter> parameters) {
this.parameters = parameters;
}
}
के साथ मेल का सेट के मालिक हैं और इस आप कैसे पढ़ा है और पार्स यह
public static void runSuite(String jarFilePath, Suite s)
throws MalformedURLException, ClassNotFoundException {
//Don't confuse : XmlSuite here, is the standard testNg class. our bean class is Suite
XmlSuite suite = new XmlSuite();
suite.setName(s.getName());
for (Test t : s.getTestCases()) {
XmlTest test = new XmlTest(suite);
test.setName(t.getName());
List<XmlClass> classes = new ArrayList<XmlClass>();
for (TestClass tc : t.getClasses()) {
Class cls = loadClass(jarFilePath, tc.getName());
if (cls != null) {
XmlClass xClass = new XmlClass(cls, false);
classes.add(xClass);
test.setXmlClasses(classes);
}
}
}
List<XmlSuite> suites = new ArrayList<XmlSuite>();
suites.add(suite);
TestNG tng = new TestNG();
tng.setXmlSuites(suites);
tng.run();
}
public Class loadClass(String jarFilePath, String className) throws MalformedURLException,
ClassNotFoundException {
File jarFile = new File(jarFilePath);
if (jarFile.isFile()) {
URL url = jarFile.toURL();
URL[] urls = new URL[] { url };
ClassLoader cl = new URLClassLoader(urls);
return cl.loadClass(className);
} else {
return null;
}
}
जार एक बस एक ज़िप फ़ाइल है।
आप jar xf testfile.jar
का उपयोग करके निकाले गए और अपनी इच्छित फ़ाइल तक पहुंच सकते हैं।
यह उत्तर आपको भी मदद कर सकता है।
आप अपने xml चलाने के लिए -xmlpathinjar सुइट्स/GroupBased_Tests.xml विकल्प का उपयोग कर सकते हैं।
अगर यह मदद करता है तो मैवेन here के साथ चरणों का उल्लेख कर सकते हैं।
अन्य विकल्पों के लिए आप उपयोग कर सकते हैं, कृपया टेस्टिंग दस्तावेज here देखें।
क्या मैं कमांड लाइन के बजाय प्रोग्रामेटिक रूप से निष्पादित कर सकता हूं? – gihan
आप जार प्रोग्रामेटिक रूप से निष्पादित करना चाहते हैं? –
yes.i में एक जार फ़ाइल है जो maven build.let से उत्पन्न होती है, मेरा कहना है कि मेरा जार फ़ाइल नाम 'myproject-1.0-SNAPSHOT' है, इस जार में मेरे सभी 'src/target' फ़ोल्डर संसाधन हैं। इसलिए मैं अपने' testngTestfile को निष्पादित करना चाहता हूं .xml' जो जेनरेट की गई जेर फ़ाइल के अंदर स्थित है। मैं इसे प्रोग्रामेटिक रूप से करना चाहता हूं। Eg:user फ़ाइल नाम के साथ जार को एक तर्क के रूप में देता है और उस परीक्षा को प्रोग्रामेटिक रूप से निष्पादित करता है।'executeTest (.jarfilelocation, fileNametobeExecuted) '। इस विधि परीक्षण के अंदर चलाया जाएगा – gihan
- 1. टेस्टएनजी
- 2. इंटेलिज 15 टेस्टएनजी परीक्षणों में अपग्रेड करने के बाद आईडीई
- 3. टेस्टएनजी
- 4. टेस्टएनजी
- 5. मैं अपने परीक्षणों को स्वचालित रूप से चलाने के लिए ग्रहण को कैसे कॉन्फ़िगर कर सकता हूं?
- 6. टेस्टएनजी surefire, मेवेन कमांड लाइन
- 7. जार चलाने पर लॉगिंग को कॉन्फ़िगर कैसे करें?
- 8. टेस्टएनजी में विभिन्न नामों के साथ परीक्षण कैसे उत्पन्न करें?
- 9. टेस्टएनजी/सेलेनियम
- 10. जार/बल्ले/
- 11. ट्रैविस सीआई के परीक्षणों को खोजने और चलाने के लिए पाइथन परियोजना संरचना कैसा दिखना चाहिए?
- 12. एक जार
- 13. क्या परीक्षण के समूह चलाने के लिए एक जुनीट टेस्टरनर है?
- 14. एक-एक करके एक साथ परीक्षण चलाने के लिए TeamCity को कॉन्फ़िगर कैसे करें?
- 15. कैसे एक-जार
- 16. टेस्टएनजी: अनिवार्य अपवादों के लिए परीक्षण कैसे करें?
- 17. सभी परीक्षणों को चलाने के दौरान कुछ श्रेणियों को अनदेखा करने के लिए मैं रीशेपर कैसे प्राप्त करूं?
- 18. कैसे मैं एक जार
- 19. एमएसबिल्ड सभी परीक्षणों को चलाने के लिए लक्षित करता है, भले ही कुछ
- 20. विंडोज बैच फ़ाइल को कई बार जार फ़ाइल चलाने के लिए
- 21. टेस्टिंग और सेलेनियम परीक्षणों को अनुकूलित करने के लिए कैसे करें
- 22. कमांड लाइन से जार फ़ाइल को चलाने के लिए असफल: "कोई मुख्य मेनिफ़ेस्ट विशेषता"
- 23. एक संसाधन एक जार
- 24. परीक्षणों के लिए संपत्ति संकलन को कैसे बढ़ाया जाए?
- 25. इकाई परीक्षणों में स्पार्क लॉगिंग को दबाने के लिए कैसे?
- 26. एक जार
- 27. गैलियो यूनिट परीक्षणों को लेने और चलाने के लिए मैं VS2012 परीक्षण धावक को कैसे कॉन्फ़िगर कर सकता हूं?
- 28. मैं अपने यूनिट परीक्षणों को स्वचालित रूप से और लगातार चलाने के लिए PyCharm को कैसे कॉन्फ़िगर कर सकता हूं?
- 29. एक जार
- 30. स्वचालित परीक्षणों को तेज़ रखने के लिए कैसे?
से ऊपर साझा किया है धन्यवाद। यह अपेक्षा के अनुसार ठीक काम करता है। – gihan