আপনি তাদের খুব সহজেই JUnit বিভাগ এবং মাভেন ব্যবহার করে বিভক্ত করতে পারেন।
বিভক্ত ইউনিট এবং ইন্টিগ্রেশন পরীক্ষার দ্বারা এটি খুব নীচে দেখানো হয়েছে।
একটি চিহ্নিতকারী ইন্টারফেস সংজ্ঞায়িত করুন
বিভাগগুলি ব্যবহার করে একটি পরীক্ষাকে গ্রুপিংয়ের প্রথম পদক্ষেপটি একটি মার্কার ইন্টারফেস তৈরি করা।
আপনি ইন্টিগ্রেশন পরীক্ষা হিসাবে চালাতে চান এমন সমস্ত পরীক্ষার চিহ্নিত করতে এই ইন্টারফেসটি ব্যবহার করা হবে।
public interface IntegrationTest {}
আপনার পরীক্ষা ক্লাস চিহ্নিত করুন
আপনার পরীক্ষার শ্রেণির শীর্ষে বিভাগটি টীকা যুক্ত করুন। এটি আপনার নতুন ইন্টারফেসের নাম নেয়।
import org.junit.experimental.categories.Category;
@Category(IntegrationTest.class)
public class ExampleIntegrationTest{
@Test
public void longRunningServiceTest() throws Exception {
}
}
ম্যাভেন ইউনিট টেস্টগুলি কনফিগার করুন
এই দ্রষ্টব্যটির সৌন্দর্যটি হ'ল কোনও বিষয়গুলির ইউনিট পরীক্ষার দিকের জন্য সত্যিই পরিবর্তন হয় না।
কোনও ইন্টিগ্রেশন টেস্ট উপেক্ষা করার জন্য আমরা কেবল মেন সিফারফায়ার প্লাগইনে কিছু কনফিগারেশন যুক্ত করি।
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.11</version>
<dependencies>
<dependency>
<groupId>org.apache.maven.surefire</groupId>
<artifactId>surefire-junit47</artifactId>
<version>2.12</version>
</dependency>
</dependencies>
<configuration>
<includes>
<include>**/*.class</include>
</includes>
<excludedGroups>com.test.annotation.type.IntegrationTest</excludedGroups>
</configuration>
</plugin>
আপনি যখন এমভিএন ক্লিন পরীক্ষা করেন কেবলমাত্র আপনার অচিহ্নিত ইউনিট পরীক্ষাগুলি চলবে।
মাভেন ইন্টিগ্রেশন টেস্টগুলি কনফিগার করুন
আবার এর জন্য কনফিগারেশনটি খুব সাধারণ।
শুধুমাত্র ইন্টিগ্রেশন পরীক্ষা চালাতে, এটি ব্যবহার করুন:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.11</version>
<dependencies>
<dependency>
<groupId>org.apache.maven.surefire</groupId>
<artifactId>surefire-junit47</artifactId>
<version>2.12</version>
</dependency>
</dependencies>
<configuration>
<groups>com.test.annotation.type.IntegrationTest</groups>
</configuration>
</plugin>
আপনি যদি আইডির সাথে কোনও প্রোফাইলে এটি মুড়ে রাখেন তবে আপনি IT
কেবল দ্রুত ব্যবহার করে দ্রুত পরীক্ষা চালাতে পারেন mvn clean install
। কেবল ইন্টিগ্রেশন / ধীর পরীক্ষা চালাতে, ব্যবহার করুন mvn clean install -P IT
।
তবে বেশিরভাগ ক্ষেত্রে, আপনি ডিফল্টরূপে এবং সমস্ত পরীক্ষার মাধ্যমে দ্রুত পরীক্ষা চালাতে চান -P IT
। যদি এটি হয় তবে আপনাকে একটি কৌশল ব্যবহার করতে হবে:
<profiles>
<profile>
<id>IT</id>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<configuration>
<excludedGroups>java.io.Serializable</excludedGroups> <!-- An empty element doesn't overwrite, so I'm using an interface here which no one will ever use -->
</configuration>
</plugin>
</plugins>
</build>
</profile>
</profiles>
আপনি দেখতে পাচ্ছেন যে, আমি পরীক্ষাগুলি বাদ দিচ্ছি যা দিয়ে টীকায়িত java.io.Serializable
। এটি প্রয়োজনীয় কারণ প্রোফাইলে শিওরফায়ার প্লাগইনটির ডিফল্ট কনফিগারেশন উত্তরাধিকার সূত্রে প্রাপ্ত হবে, তাই আপনি বললেও <excludedGroups/>
বা <excludedGroups></excludedGroups>
মানটি com.test.annotation.type.IntegrationTest
ব্যবহৃত হবে।
আপনি none
এটি ব্যবহার করতে পারবেন না কারণ এটি ক্লাসপথে একটি ইন্টারফেস হতে হবে (মাভেন এটি পরীক্ষা করবে)।
মন্তব্য:
- নির্ভরতা কেবল
surefire-junit47
তখনই প্রয়োজনীয় যখন মেভেন স্বয়ংক্রিয়ভাবে JUnit 4 রানারটিতে স্যুইচ না করে। groups
বা excludedGroups
উপাদান ব্যবহার করে স্যুইচটি ট্রিগার করা উচিত। এখানে দেখুন ।
- উপরের বেশিরভাগ কোডটি মাভেন ফেইলসেফ প্লাগইনের জন্য ডকুমেন্টেশন থেকে নেওয়া হয়েছিল। এই পৃষ্ঠায় "JUnit বিভাগ ব্যবহার করে" বিভাগটি দেখুন ।
- আমার পরীক্ষার সময়, আমি দেখতে পেলাম যে আপনি
@RunWith()
স্যুট বা স্প্রিং-ভিত্তিক পরীক্ষা চালানোর জন্য টীকাগুলি ব্যবহার করলেও এটি কাজ করে।