Filtrar os testes de 'catch' por rótulo ao executar com 'ctest'

3

No momento, estou usando ctest para executar testes escritos com o Estrutura de captura . Eu gostaria de poder filtrar quais testes eu executei com base nas tags Catch internas; Por exemplo, gostaria de evitar facilmente que testes com tags [FUTURE] sejam executados.

Para um único executável de teste, ignorando ctest , isso é simples:

myTestName '~[FUTURE]'

Mas não vejo como passar o argumento '~[FUTURE]' para os testes Catch via ctest . Este deve ser possível --test-command , mas (1) --test-command não parece fazer nada sem --build-and-test (que não é o que eu quero) e (2) isso aparentemente só funciona para um teste de cada vez, o que também não é o que eu quero (eu só quero correr ctest no meu projeto inteiro).

Eu poderia usar apenas ctest -N para obter os nomes dos testes a serem executados e, em seguida, executar os testes sozinho, mas não sei de nenhuma maneira de obter o caminho de arquivo de teste de ctest , execute find em todos os nomes de teste e, nesse momento, estou basicamente implementando meu próprio test runner.

P.S. Não há tags existentes para ctest ou a estrutura de teste Catch, e eu não tenho o representante para criá-las. Não tenho certeza de que outras tags se aplicariam aqui. Estou usando somente a tag cmake porque ctest é parte de cmake .

    
por Kyle Strand 15.04.2015 / 00:19

0 respostas

Tags