Saya mencoba menggunakan @testable
deklarasi baru Swift 2 untuk mengekspos kelas saya ke target tes. Namun saya mendapatkan kesalahan kompilator ini:
Intervals
adalah modul yang berisi kelas yang saya coba untuk paparkan. Bagaimana saya menyingkirkan kesalahan ini?
sumber
@testable
) tetapi perlu tunduk ke App Store? JikaEnable Testability
hanya untuk debug build, bagaimana dengan ini? Apakah saya harus mengeluarkan kode pengujian saya untuk rilis?Dalam kasus saya, saya menggunakan konfigurasi pembuatan kustom untuk pengujian (dipanggil
Test
) dan jugacocoapods
sebagai manajer dependensiSaya harus menambahkan baris berikut ke ujung saya
Podfile
untuk memungkinkan testabilitySecara default
cocoapods
setENABLE_TESTABILITY
untukYES
hanya untukDebug
membangunsumber
Pastikan Anda mengatur kotak centang dengan benar di bawah skema aplikasi Anda. Anda HARUS MEMBATALKAN target pengujian Anda untuk Pembuatan Arsip.
sumber
Bagi Anda yang mengalami ini hanya saat menjalankan Xcode Profiler: alihkan konfigurasi build profil dalam manajemen skema Anda ke yang memiliki testabilitas diaktifkan - dan itu akan menjadi debug dalam banyak kasus:
sumber
Ini mungkin karena target utama Anda
Enable Testability
ditetapkanNO
. Anda harus mengaturnyaYES
dalam skema debug (yang digunakan untuk menjalankan tes Anda).Jika Anda menggunakan Carthage, masalah ini dapat disebabkan oleh mengimpor kerangka kerja
@testable
, karena mereka dibuat dengan skema rilis.Seringkali itu praktik yang buruk untuk mengimpor kerangka kerja dengan awalan itu, sehingga Anda bisa menghindarinya. Jika Anda tidak bisa, Anda harus
Enable Testability
dalam skema rilis kerangka kerja. https://developer.apple.com/library/content/releasenotes/DeveloperTools/RN-Xcode/Chapters/Introduction.html#//apple_ref/doc/uid/TP40001051-CH1-SW326sumber
Saya mulai mendapatkan kesalahan ini ketika menjalankan tes menggunakan Bitrise.
Tidak seperti kata pengguna lain, ini bukan per
Target
basis, atau perSchema
basis, ini perConfiguration
basis. PilihTarget
->Build Settings
tab -> caritestability
-> Aktifkan pada Konfigurasi yang Anda gunakan .Harap perhatikan bahwa Apple merekomendasikan untuk mengaktifkan ini pada konfigurasi yang Anda gunakan untuk debugging, bukan untuk AppStore.
sumber
Solusi di atas baik-baik saja jika Anda menggunakan pod / Carthage. Tetapi jika Anda menggunakan kerangka kerja dari iOS itu sendiri 'misalnya Kontak', Anda perlu menambahkan jalur ke kerangka kerja ini di 'Jalur Pencarian Perpustakaan' dari target proyek utama Anda.
sumber
Jika Anda mencoba menguji kerangka kerja:
Pergi ke target uji -> Bangun Fase -> Buat fase menyalin file baru -> Pilih kerangka kerja -> Tambahkan semua kerangka kerja yang digunakan secara rekursif
sumber
Jika kebetulan Anda miliki
Maka, inilah cara untuk melakukannya.
sumber
Ini tidak terjadi di proyek saya sebelum Xcode 8, tetapi setelah saya upgrade ke Xcode 8, itu membuat saya bingung.
Jawaban yang diposting di sini tidak menyelesaikan masalah saya. Bagi saya, saya hanya membuang tes ini karena tidak diperlukan. Jadi hapus centang tombol tes:
Dan sekarang kesalahan sudah keluar.
sumber