Estou tentando usar a nova @testable
declaração do Swift 2 para expor minhas classes ao alvo de teste. No entanto, estou recebendo este erro do compilador:
Intervals
é o módulo que contém as classes que estou tentando expor. Como faço para me livrar desse erro?
fonte
@testable
), mas precisam ser enviados à App Store? SeEnable Testability
for apenas para compilações de depuração, qual é o caminho para contornar isso? Preciso retirar meu código de teste para lançamento?No meu caso, usei uma configuração de compilação personalizada para teste (chamada
Test
) e tambémcocoapods
como gerenciador de dependênciasEu tive que adicionar as seguintes linhas ao final do meu
Podfile
para permitir testabilidadePor padrão
cocoapods
setsENABLE_TESTABILITY
aYES
apenas paraDebug
constróifonte
Certifique-se de definir corretamente as caixas de seleção no seu esquema de aplicativo. Você deve desmarcar seus alvos de teste para a compilação de arquivos.
fonte
Para aqueles que estão enfrentando isso apenas ao executar o Xcode Profiler: alterne a configuração de criação de perfil no gerenciamento de esquemas para aquela com a testabilidade ativada - e que seria depurada na maioria dos casos:
fonte
Isso provavelmente ocorre porque seu destino principal
Enable Testability
está definido comoNO
. Você deve configurá-loYES
no esquema de depuração (usado para executar seus testes).Se você usa Carthage, esse problema pode ser causado pela importação de estruturas com
@testable
, porque elas são criadas com um esquema de liberação.Na maioria das vezes, é uma prática recomendada importar estruturas com esse prefixo, para que você possa evitá-lo. Se você não pode, deve fazê-lo
Enable Testability
no esquema de liberação das estruturas. https://developer.apple.com/library/content/releasenotes/DeveloperTools/RN-Xcode/Chapters/Introduction.html#//apple_ref/doc/uid/TP40001051-CH1-SW326fonte
Comecei a receber esse erro ao executar testes usando o Bitrise.
Ao contrário de outros usuários, isso não é por
Target
base, ou porSchema
base, é porConfiguration
base. SelecioneTarget
->Build Settings
guia -> procuretestability
-> Habilite-o na configuração que você está usando .Observe que a Apple recomenda habilitar isso na configuração que você está usando para depuração, não na AppStore.
fonte
A solução acima é boa se você estiver usando cápsulas / Cartago. Mas se você estiver usando estruturas do próprio iOS ', por exemplo, Contatos', precisará adicionar um caminho a essas estruturas em 'Caminhos de pesquisa da biblioteca' do destino do seu projeto principal.
fonte
Se você está tentando testar a estrutura:
Vá para o destino de teste -> Fase de construção -> Fase de criação de novos arquivos de cópia -> Escolha estruturas -> Adicionar todas as estruturas usadas recursivamente
fonte
Se por acaso você tiver
Então, este é o caminho para fazê-lo.
fonte
Isso não ocorreu em meus projetos anteriores ao Xcode 8, mas depois da atualização para o Xcode 8, fiquei perplexo.
As respostas postadas aqui não resolveram meus problemas. Para mim, acabei de abandonar esses testes, pois não é necessário. Portanto, desmarque os botões de teste:
E agora o erro foi apagado.
fonte