Ctest ile çalışırken yakalama testlerini etikete göre filtreleme


3

Şu anda kullanıyorum ctest ile yazılmış testleri yapmak Çerçeve yakalamak . Dahili Catch etiketlerine göre hangi testleri çalıştırdığımı filtreleyebilmek istiyorum; örneğin, etiketlenen tüm testleri kolayca engellemek istiyorum [FUTURE] kaçmaktan.

Yürütülebilir tek bir test için yoksayma ctest, bu basit:

myTestName '~[FUTURE]'

Ama geçmek için hiçbir yol görmüyorum '~[FUTURE]' Catch testlerinin argümanı ctest. Bu mümkün olmalı --test-command, fakat (1) --test-command olmadan bir şey yapmak görünmüyor --build-and-test (istediğim bu değil) ve (2) bu görünüşte bir seferde sadece bir test için çalışıyor, istediğim de değil (sadece koşmak istiyorum) ctest tüm projemde).

Sadece kullanabilirim ctest -N Testlerin isimlerinin alınması ctest bu yüzden koşmalıyım find tüm test isimleri ve bu noktada temel olarak kendi test çalıştırıcımı uyguluyorum.

Not; İçin mevcut etiket yok ctest veya Catch test çerçevesi ve onları yaratacak bir temsilcim yok. Başka hangi etiketlerin burada uygulanacağından emin değilim. Sadece kullanıyorum cmake tag çünkü ctest parçası cmake.


1
Bunu daha önce hiç gördün mü?
jorgeh

1
@ jorgeh Hayır, yapmadım. Bu oldukça göze batan bir ihmal gibi görünüyor ctest....
Kyle Strand

Buna benzer bir şeye ihtiyacım var, bu yüzden işte şimdi belirsiz fikrim: her testi iki defa test etmek için bir defa ilan edebilirsiniz. ~[FUTURE] Test-adım-adım ve test-adım-adım-gelecek gibi. Sonra onları en düzenli bir regex ile filtreleyebilirsin. Alternatif olarak, gelecektekilere bir ctest etiketi ekleyebilir ve doğru olanları çalıştırmak için ctest'in etiket filtresini kullanabilirsiniz (adı düzenlemek yerine biraz daha sağlam olabilir). Tutarlı bir şekilde yapıldığından emin olmak için test kaydı için cmake sarmalayıcı işlevini kullanabilirsiniz.
dshepherd
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.