Tôi đang sử dụng dịch hại nhất. Tôi có hai tệp trong một thư mục. Trong một trong các tệp có một trường hợp thử nghiệm chạy dài tạo ra một số đầu ra. Trong tập tin khác có một trường hợp thử nghiệm mà đọc đầu ra đó. Làm thế nào tôi có thể đảm bảo thứ tự thực hiện thích hợp của hai trường hợp thử nghiệm? Có cách nào khác thay vì đặt các trường hợp thử nghiệm trong cùng một tệp theo đúng thứ tự không?Trật tự thực hiện trường hợp kiểm tra trong pytest
Trả lời
Nói chung, bạn có thể định cấu hình hành vi của bất kỳ phần nào của pytest cơ bản bằng cách sử dụng well-specified hooks.
Trong trường hợp của bạn, bạn muốn móc "pytest_collection_modifyitems", cho phép bạn sắp xếp lại các thử nghiệm được thu thập tại chỗ.
Điều đó nói rằng, dường như việc đặt hàng các thử nghiệm của bạn sẽ dễ dàng hơn - đây là Python! Vì vậy, tôi đã viết một plugin để đặt hàng kiểm tra. Hãy xem docs hoặc cài đặt từ pypi. Hiện tại, tôi khuyên bạn nên sử dụng @ pytest.mark.first và @ pytest.mark.second hoặc một trong các dấu @ pytest.mark.order #, nhưng tôi có một số ý tưởng về các API hữu ích hơn. Gợi ý hoan nghênh :)
Hey. Cảm ơn bạn đã tạo plugin này. Bạn có thể sửa đổi nó sao cho nó chỉ trích xuất các chữ số cuối theo thứ tự. Ví dụ: Nếu tôi nói @ pytest.mark.custom1, thì 1 phải là thứ tự. Điều này sẽ giúp rất nhiều! –
Tôi có thể thử. Tôi nghĩ rằng v0.2 có hành vi này với điểm đánh dấu "thứ tự", thay vì các điểm đánh dấu tùy ý. Bạn có thể viết nó lên như một yêu cầu tính năng trên trang github của pytest-ordering? https://github.com/ftobia/pytest-ordering –
Liên kết móc phải đến: http://pytest.org/latest/writing_plugins.html#well-specified-hooks –
lẽ bạn có thể xem xét sử dụng plugin dependency pytest, nơi bạn có thể thiết lập sự phụ thuộc kiểm tra một cách dễ dàng:
@pytest.mark.dependency()
def test_long():
pass
@pytest.mark.dependency(depends=['test_long'])
def test_short():
pass
Bằng cách này test_short
sẽ chỉ thực hiện nếu test_long
là thành công và lực trình tự thực hiện cũng.
Ở trên không có tác dụng đối với tôi để sắp xếp thứ tự. Ví dụ: nếu bạn lật thứ tự. Tức là từ lâu phụ thuộc vào ngắn. Trong trường hợp đó, lâu bị bỏ qua. – peaxol
Ngoài ra còn có một plugin pytest-ordering dường như đáp ứng các yêu cầu của bạn.
Câu trả lời của Frank T. đã đề cập đến plugin này và đã được đăng 3 năm trước câu trả lời này. – Ave
uh, nhưng anh ta không đề cập đến cái tên. đó là lý do tại sao tôi hoàn toàn bỏ qua điểm đó. –
- 1. Pytest: Bỏ chọn kiểm tra
- 2. Android AsyncTask - Trật tự thực hiện
- 3. Thực hiện `kiểm tra` hoặc 'thực hiện kiểm tra'
- 4. Xác định trường hợp kiểm tra hiện tại đang thực hiện bởi Nunit
- 5. Log4j trong trường hợp kiểm tra JUnit
- 6. JUnit có thực thi các trường hợp kiểm tra tuần tự không?
- 7. Thực hiện java.util.Map sử dụng để chèn như trật tự
- 8. Cách thực hiện các trường hợp kiểm tra NUnit từ dấu nhắc lệnh
- 9. Cách viết các trường hợp kiểm tra?
- 10. Làm cách nào để các trường hợp kiểm tra JUnit chạy theo thứ tự tuần tự?
- 11. Thực hiện kiểm tra đôi trong OCaml
- 12. LINQ trật tự bằng cách tổng hợp trong chọn {}
- 13. VS2012 Thực hiện kết quả kiểm tra xuất hiện trong cửa sổ Kết quả kiểm tra
- 14. "App_GlobalResources" không tải trong trường hợp kiểm tra Đơn vị
- 15. Kiểm tra phạm vi trong trường hợp của Haskell?
- 16. Giảm Khớp nối giữa các Trường hợp Kiểm tra
- 17. Kiểm tra Tăng cường: Cách viết các trường hợp kiểm tra được tham số
- 18. JavaScript RegExp: kiểm tra và thực hiện
- 19. Trường hợp kiểm tra đối với đầu vào chuỗi
- 20. Danh mục kiểm tra - lỗi phổ biến hoặc trường hợp kiểm tra
- 21. Tự động tạo các trường hợp kiểm tra đơn vị cho .NET và Java
- 22. PostgreSQL array_agg trật tự
- 23. #define và trật tự #include trong C
- 24. Viết các trường hợp kiểm tra (Rspec) cho ứng dụng hiện có
- 25. Làm cách nào để thực hiện kiểm tra đơn vị tự động trong các gói SSIS?
- 26. Cách thực hiện kiểm tra đơn vị trong Erlang
- 27. Kiểm tra biến môi trường
- 28. Nhiều trường hợp của Firefox trong Trình kiểm tra web Selenium Kiểm tra không xử lý chính xác tiêu điểm.
- 29. Làm thế nào để thực hiện ipdb.set_trace() theo ý muốn trong khi chạy thử nghiệm pytest
- 30. Ruby on Rails trật tự bởi id
nói chung không phải là ý tưởng tuyệt vời khi có trường hợp kiểm tra phụ thuộc vào nhau. Nếu bạn cần sử dụng cùng một dữ liệu trong 2 trường hợp kiểm tra thì tại sao không thêm nó vào phần 'setup'? – Brad
Tôi biết. Tôi không thích nó, nhưng ngay bây giờ tôi cần nó. – Kocka
Tôi không muốn thêm nó vào phần thiết lập, vì mất khoảng 15-20 phút. – Kocka