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?

Foi útil?

Solução

Eu acho que esta é a maneira mais fácil:

    .
  1. Defina um ponto de interrupção em algum lugar em seus testes (eu tenho feito isso no método de instalação)
  2. Abra um novo documento em instrumentos
  3. Execute o aplicativo e verifique se ele é parado em um ponto de interrupção
  4. a partir do alvo descer em instrumentos Escolha anexar ao processo e role para baixo para o seu processo
  5. Clique no registro e, em seguida, retome no Xcode

Outras dicas

no Xcode, clique com o botão direito do mouse no seu teste no Test Navigator e selecione "Perfil" TestName "":

 Instruments Profile Unit Memory

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!

Digite a descrição da imagem aqui

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];
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top