Chào các bạn đã đến với chủ đề tiếp theo của mình. Ở bài trước, mình đã có giới thiệu qua cách tạo file testng.xml cũng như cách run test dựa trên file này. Để tiếp nối với chủ đề trước, hôm nay, mình sẽ tiếp tục hướng dẫn các bạn tìm hiểu kỹ hơn về cách config file testng.xml. Ở bài bài này, mình sẽ đi qua những nội dung sau:
Nội dung
1. Chuẩn bị
- Đầu tiên, để run test với file testng.xml, các bạn hãy tạo ra file trước. Các bạn có thể xem lại bài trước để biết cách tạo file nhé.
- Tiếp theo, trong project của các bạn, hãy tạo giúp mình thêm 3 package, mỗi package sẽ tạo thêm 2 class nhưng hình sau:
Trong mỗi Class, chúng ta chỉ cần add 2 Method:
@Test
public void firstTest() {
System.out.println("First test method");
}
@Test
public void secondTest() {
System.out.println("Second test method");
}
- Đến đây thì bước chuẩn bị đã xong rồi nhé.
2. Cách run test theo Class
- Để run với cách này, đầu tiên, chúng ta cần phải config file testng.xml như sau:
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" >
<suite name="Suite" verbose="1">
<test name="FirstTest">
<classes>
<class name="testngDemo.firstPackage.FirstClass" />
<class name="testngDemo.firstPackage.SecondClass" />
</classes>
</test>
</suite>
- Trong đó:
- Đối tượng phía trong của <test> là <classes>
- Trong <classes> sẽ điền list các class mà ta muốn run test. Với attribute name là [packageName].[className]. Ví dụ: testngDemo.firstPackage.FirstClass
- Khi run xong, kết quả sẽ hiển thị như sau:
3. Cách run test theo package
- Để run test theo package, chúng ta cần phải config file testng.xml như sau:
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" >
<suite name="Suite" verbose="1">
<test name="FirstTest">
<packages>
<package name="testngDemo.firstPackage" />
<package name="testngDemo.secondPackage" />
</packages>
</test>
</suite>
- Trong đó:
- Đối tượng phía trong của <test> là <packages>
- Trong <packages> sẽ điền list các package mà ta muốn run test với attribute name là [packageName] Ví dụ: testNG.firstPackage
- Khi run xong, kết quả sẽ hiển thị như sau:
4. Cách run test theo method
- Để run test theo method, chúng ta sẽ config file xml như sau:
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" >
<suite name="Suite" verbose="1">
<test name="FirstTest">
<classes>
<class name="testngDemo.firstPackage.FirstClass">
<methods>
<include name="firstTest" />
</methods>
</class>
<class name="testngDemo.secondPackage.FirstClass">
<methods>
<include name="firstTest" />
</methods>
</class>
</classes>
</test>
</suite>
- Trong đó:
- Để run được riêng <method> thì phải có <class>
- Method muốn được run thì phải sử dụng <include>
- Khi run xong, kết quả sẽ hiển thị như sau:
5. Cách run test hỗn hợp package, class và method
- Để run test theo cách này, chúng ta sẽ config file xml như sau:
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" >
<suite name="Combine Suite" verbose="1">
<test name="Combine Test">
<packages>
<package name="firstpackage" />
</packages>
<classes>
<class name="secondpackage.FirstClass" />
<class name="thirdpackage.FirstClass">
<methods>
<include name="firstTest" />
</methods>
</class>
</classes>
</test>
</suite>
- Trong đó: <packages> và <classes> được khai báo cùng cấp, ngang hàng với nhau. <class> không phải khai báo dưới <package>. Tuy nhiên khai báo <method> thì phải nằm dưới <class>
- Khi run xong, kết quả sẽ hiển thị như sau:
- Bạn sẽ thấy là TestNG không run theo thứ tự test mà bạn đã config trong TestNG từ firstPackage –> secondPackage –> thirdPackage. Lý do là vì với TestNG thì những thằng nằm dưới <test> là ngang hàng, lúc đó nó chỉ quan tâm đến tên của Class và thứ tự theo bảng chữ cái (Aphabetically). Và các methods trong 1 Class cũng được run theo thứ tự bảng chữ cái. Đó là lý do vì sao nhiều bạn khi mới học cảm thấy khó chịu vì nó không run theo thứ tự từ trên xuống dưới. Để config run theo thứ tự ta mong muốn sẽ được nói ở 1 bài khác.
6. Cách sử dụng chức năng Including và Excluding
- Include: được dùng trong các TH sau đây:
- Trong 1 package có nhiều package, nhưng chỉ muốn run số ít package trong đó.
- Trong 1 Class có nhiều method, chỉ muốn run số ít method (xem lại mục 4 ở phía trên).
- Exclude: được dùng trong các TH sau đây:
- Trong 1 package có nhiều package, nhưng muốn không run một vài package trong đó.
- Trong 1 Class có nhiều method, nhưng muốn không run một vài method.
- Ví dụ:
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" >
<suite name="Exclude Method Suite" verbose="1">
<test name="Exclude Method Test">
<classes>
<class name="testngDemo.firstPackage.FirstClass">
<methods>
<exclude name="firstTest" />
</methods>
</class>
</classes>
</test>
</suite>
- Khi run xong, kết quả sẽ hiển thị như sau:
Lưu ý:
- Trong một project, chúng ta có thể tạo nhiều file config khác nhau. Ví dụ:
7. Lời kết
Đến đây thì mình cũng đã giới thiệu xong cách run test bằng package, class, method bằng cách config file testng.xml. Các bạn hãy làm lại theo ví dụ trên để hiểu bài hơn nhé. Mình hy vọng bài viết này sẽ hữu ích cho các bạn. Cảm ơn các bạn đã theo dõi bài viết của mình. Hẹn gặp lại các bạn ở những chủ đề tiếp theo.
Nguồn:
https://giangtester.com/bai-2-cach-run-test-bang-package-class-method-trong-file-testng-xml/