2012-06-14 33 views
5

Khi sử dụng TestNG + Selenium, tôi không thể đảm bảo thứ tự thực hiện các lớp. Thứ tự được chỉ định bên dưới (trong testng.xml) không hoạt động -> ClassTwo thực hiện trước và sau đó ClassOne được thực hiện.Làm thế nào để đảm bảo rằng thứ tự được chỉ định trong TestNG.xml được giữ lại?

<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd"> 
<suite name="ABC" parallel=""> 
    <test verbose="2" name="xyz" annotations="JDK" preserve-order="true"> 
    <classes> 
     <class name="script.ClassOne"/> 
     <class name="script.ClassTwo"/> 
    </classes> 
    </test> 
</suite> 

Làm cách nào để đảm bảo rằng thứ tự được chỉ định trong TestNG.xml được giữ lại?

+0

Đơn đặt hàng bảo tồn cho tôi..trong một thử nghiệm đơn giản. Bạn có thể xuất bản mã ur và đầu ra không. –

+0

Điều này vẫn bị hỏng. Bất kỳ giải pháp nào cho vấn đề này? – sebnukem

Trả lời

4

Theo TestNG documentation:

Theo mặc định, TestNG sẽ chạy thử nghiệm của bạn theo thứ tự chúng được tìm thấy trong file XML. Nếu bạn muốn các lớp học và phương pháp liệt kê trong tập tin này được chạy trong một trật tự khó lường, thiết lập các thuộc tính giữ gìn trật tự false

tôi sẽ đề nghị rời khỏi preserve-order thuộc tính ra, kể từ khi nó được thiết lập theo mặc định .

Tuy nhiên, bạn có hai lựa chọn khác để buộc thứ tự cụ thể các phương pháp thử nghiệm/classes:

  1. Gọi kiểm tra theo chương trình.
  2. Triển khai method interceptor, sẽ sắp xếp danh sách các thử nghiệm.
+1

Nhưng trong trường hợp của tôi, luồng thực thi được định nghĩa trong tệp testng.xml không được theo sau. Tôi muốn rằng dòng chảy thực hiện nên được theo testng.xml.If tôi rời khỏi bảo tồn trật tự vấn đề vẫn còn tồn tại.Điều gì có thể là lý do cho điều này? – Mandy

+0

Bạn có thể đang sử dụng phiên bản cũ hơn của TestNG nơi cờ đó không được đặt theo mặc định. Đảm bảo bạn sử dụng phiên bản mới nhất. –

+0

Tôi đã nhận thấy thứ tự phương thức hoạt động tốt nếu bạn liệt kê chúng một cách rõ ràng theo thứ tự mong muốn bên trong bộ sưu tập trong định nghĩa của bạn. Nếu không, họ đang ở trong một trật tự không thể đoán trước. –

0

.... Khá một chút sau sự kiện nhưng tôi gặp vấn đề tương tự và thấy mình ở đây.

Trong khi kết thúc đó là vì các bài kiểm tra cá nhân đã được đánh dấu bằng một ưu tiên trong @Test chú thích, vì vậy trong trường hợp của tôi, nhưng ví dụ của bạn script.ClassTwo đã có một ưu tiên cao hơn script.ClassOne

4

Bạn chỉ cần thiết lập giá trị song song với none

<suite name="ABC" parallel="none"> 

nó phù hợp với tôi!

Các vấn đề liên quan