Lọc `Catch` kiểm tra theo nhãn khi chạy với` ctest`


3

Tôi hiện đang sử dụng ctestđể chạy các bài kiểm tra được viết bằng khung Catch . Tôi muốn có thể lọc các thử nghiệm mà tôi chạy dựa trên các thẻ Catch nội bộ; ví dụ, tôi muốn dễ dàng ngăn chặn mọi thử nghiệm được gắn thẻ [FUTURE]chạy.

Đối với một thử nghiệm duy nhất có thể thực hiện được, bỏ qua ctest, điều này rất đơn giản:

myTestName '~[FUTURE]'

Nhưng tôi không thấy cách nào để vượt qua '~[FUTURE]'đối số cho các bài kiểm tra Catch thông qua ctest. Điều này là có thể --test-command , nhưng (1) --test-commanddường như không làm gì nếu không có --build-and-test(đó không phải là điều tôi muốn) và (2) điều này dường như chỉ hoạt động cho một thử nghiệm tại một thời điểm, đó cũng không phải là điều tôi muốn (tôi chỉ muốn chạy ctesttrên toàn bộ dự án của tôi).

Tôi chỉ có thể sử dụng ctest -Nđể có được tên của các bài kiểm tra để chạy, sau đó tự chạy các bài kiểm tra, nhưng tôi không biết cách nào để có được các bài kiểm tra từ ctestđó vì vậy tôi phải chạy findtrên tất cả các tên bài kiểm tra và tại thời điểm đó về cơ bản tôi đang thực hiện bài kiểm tra của riêng mình.

PS Không có thẻ hiện có cho ctesthoặc khung kiểm tra Catch và tôi không có đại diện để tạo chúng. Tôi không thực sự chắc chắn những thẻ khác sẽ áp dụng ở đây. Tôi chỉ sử dụng cmakethẻ vì ctestlà một phần của cmake.


1
Bạn đã bao giờ con số này ra?
jorgeh

1
@jorgeh Không, tôi không có. Nó có vẻ như là một thiếu sót khá rõ ràng trong ctest....
Kyle Strand

Tôi cần một cái gì đó giống như thế này, vì vậy đây là ý tưởng mơ hồ hiện tại của tôi: bạn có thể khai báo mỗi bài kiểm tra hai lần, một lần với ~[FUTURE]tên thử nghiệm của tôi và một lần mà không phải là tên thử nghiệm của tôi trong tương lai. Sau đó, bạn có thể lọc chúng với regex ctest. Ngoài ra, bạn có thể thêm nhãn ctest vào nhãn tương lai và sử dụng tính năng lọc nhãn của ctest để chạy đúng nhãn (có thể mạnh hơn một chút so với ghi lại tên). Bạn có thể sử dụng chức năng bao bọc cmake để đăng ký kiểm tra để đảm bảo nó được thực hiện một cách nhất quán.
dshepherd
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.