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-command
dườ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 ctest
trê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 find
trê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 ctest
hoặ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 cmake
thẻ vì ctest
là một phần của cmake
.
ctest
....
~[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.