É possível executar testes baseados em XCTEST em instrumentos no Xcode 5?
-
21-12-2019 - |
Pergunta
Olhando para XCTEST e Xcode 5 testes unitários e não vendo como executar meus testes unitários em instrumentos em Xcode 5 ...
Especificamente gostaria de procurar vazamentos durante o teste (isso não precisa ser automatizado nessa instância, embora claramente que seja útil).
possível?
Solução
Eu acho que esta é a maneira mais fácil:
- .
- Defina um ponto de interrupção em algum lugar em seus testes (eu tenho feito isso no método de instalação)
- Abra um novo documento em instrumentos
- Execute o aplicativo e verifique se ele é parado em um ponto de interrupção
- a partir do alvo descer em instrumentos Escolha anexar ao processo e role para baixo para o seu processo
- Clique no registro e, em seguida, retome no Xcode
Outras dicas
Aqui está a maneira certa de fazê-lo sob Xcode 6:
1) No seu projeto Xcode, revele a pasta "Produtos", selecione o produto ".xctest", clique com o botão direito do mouse e, finalmente, escolha "Revelar no Finder" no menu contextual.
2) Instrumentos de lançamento e crie um novo documento com o modelo de sua escolha.
3) "Escolha o alvo ..." para o documento
4) Navegue e selecione a ferramenta Xcode usa para executar testes localizados na /Applications/Xcode.app/Contents/Developer/usr/bin/xctest
(você pode encontrar este local usando xcrun -f xctest
no terminal) - você precisará ativar "Pacotes Traverse" para navegar dentro do aplicativo Xcode.
5) Arraste e solte do localizador para o campo "Argumentos" O produto ".xctest" revelado na etapa 1 - isso entra em seu caminho absoluto.
6) Clique em "Escolher".
Agora você está pronto para executar seus testes de unidade de instrumentos!
I created a new target based on the mac app target I am testing, then added the xctest classes to the files to compile.
I then added the /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/Library/Frameworks/XCTest.framework to the frameworks to link against.
Then added its path $(DEVELOPER_DIR)/Platforms/MacOSX.platform/Developer/Library/Frameworks to the Runpath Search Paths.
Then in the main.m I added the following:
XCTestSuite *suite = [XCTestSuite testSuiteWithName:@"My tests"];
[suite addTest:[VideohogCachingTest testCaseWithSelector:@selector(testCompleteSequentialText)]];
[suite run];
This ran the test testCompleteSequentialText on the class VideohogCachingTest I needed to run as a normal application, therefore allowing me to run the test by either command+R or in this case, profiling with command+I. I could then catch a zombie and trace the problem, which was not a possibility for me previously. If you'd like to run all your tests you can do:
XCTestSuite *suite = [XCTestSuite defaultTestSuite];
[suite run];