Apache Maven
मावेन सुरेफ़र प्लगिन
खोज…
वाक्य - विन्यास
- mvn परीक्षण
- mvn -डस्ट = com.example.package.ExampleTest परीक्षण
JUnit और Maven Surefire प्लगइन के साथ जावा वर्ग का परीक्षण
Maven Surefire plugin Maven build process के परीक्षण चरण के दौरान या जब test
को Maven लक्ष्य के रूप में निर्दिष्ट किया जाता है। निम्न निर्देशिका संरचना और न्यूनतम pom.xml
फ़ाइल परीक्षण चलाने के लिए मावेन को कॉन्फ़िगर करेगी।
परियोजना की मूल निर्देशिका के अंदर निर्देशिका संरचना:
─ project_root
├─ pom.xml
├─ src
│ ├─ main
│ │ └─ java
│ └─ test
│ └─ java
└─ target
└─ ...
pom.xml
सामग्री:
<project>
<modelVersion>4.0.0</modelVersion>
<groupId>com.example</groupId>
<artifactId>company-app</artifactId>
<version>0.0.1</version>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.11</version>
<scope>test</scope>
</dependency>
</dependencies>
</project>
प्रोजेक्ट के src/test/java/com/example/app
निर्देशिका में निम्नलिखित सामग्री के साथ PlusTenTest.java
नामक एक फ़ाइल बनाएँ:
package com.example.app;
import static org.junit.Assert.assertEquals;
import org.junit.Test;
public class PlusTenTest {
@Test
public void incrementTest() {
int result = PlusTen.increment(10);
assertEquals("PlusTen.increment(10) result", 20, result);
}
}
एनोटेशन @Test
JUnit से कहता है कि उसे मावेन बिल्ड प्रक्रिया के test
चरण के दौरान एक परीक्षण के रूप में incrementTest()
चलाना चाहिए। अब src/main/java/com/example/app
में PlusTen.java
बनाएँ:
package com.example.app;
public class PlusTen {
public static int increment(int value) {
return value;
}
}
कमांड प्रॉम्प्ट खोलकर, प्रोजेक्ट के रूट डायरेक्टरी में नेविगेट करके और निम्न कमांड को लागू करके टेस्ट चलाएं:
mvn -Dtest=com.example.app.PlusTenTest test
PlusTenTest
कार्यक्रम को संकलित करेगा और परीक्षण विधि incrementTest()
को PlusTenTest
में PlusTenTest
। परीक्षण निम्न त्रुटि के साथ विफल हो जाएगा:
...
Tests run: 1, Failures: 1, Errors: 0, Skipped: 0, Time elapsed: 0.005 sec <<< FAILURE! - in com.example.app.PlusTenTest
incrementTest(com.example.app.PlusTenTest) Time elapsed: 0.004 sec <<< FAILURE!
java.lang.AssertionError: PlusTen.increment(10) result expected:<20> but was:<10>
at org.junit.Assert.fail(Assert.java:88)
at org.junit.Assert.failNotEquals(Assert.java:743)
at org.junit.Assert.assertEquals(Assert.java:118)
at org.junit.Assert.assertEquals(Assert.java:555)
at com.example.app.PlusTenTest.incrementTest(PlusTenTest.java:12)
Results :
Failed tests:
PlusTenTest.incrementTest:12 PlusTen.increment(10) result expected:<20> but was:<10>
Tests run: 1, Failures: 1, Errors: 0, Skipped: 0
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 2.749 s
[INFO] Finished at: 2016-09-02T20:50:42-05:00
[INFO] Final Memory: 14M/209M
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-surefire-plugin:2.19.1:test (default-test) on project app: There are test failures.
...
Maven Surefire plugin आपके प्रोजेक्ट की डायरेक्टरी में एक /target/surefire-reports/
निर्देशिका बनाता है जिसमें com.example.app.PlusTenTest.txt
और TEST-com.example.app.PlusTenTest.xml
शामिल हैं जो शुरुआत के त्रुटि विवरण रखते हैं। ऊपर उत्पादन का।
परीक्षण-संचालित विकास पैटर्न के बाद, PlusTen.java
संशोधित PlusTen.java
ताकि increments()
विधि सही ढंग से काम करे:
package com.example.app;
public class PlusTen {
public static int increment(int value) {
return value + 10;
}
}
फिर से कमांड दें:
mvn -Dtest=com.example.app.PlusTenTest test
परीक्षण गुजरता है:
-------------------------------------------------------
T E S T S
-------------------------------------------------------
Running com.example.app.PlusTenTest
Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.028 sec
Results :
Tests run: 1, Failures: 0, Errors: 0, Skipped: 0
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 2.753 s
[INFO] Finished at: 2016-09-02T20:55:42-05:00
[INFO] Final Memory: 17M/322M
[INFO] ------------------------------------------------------------------------
बधाई हो! आपने JUnit और Maven Surefire plugin का उपयोग करके जावा वर्ग का परीक्षण किया है।