Почему Xcode не может найти мое приложение для модульных тестов? - PullRequest
0 голосов
/ 13 апреля 2020

Я довольно неопытен в iOS. Я хотел написать Unit Test для моего проекта Cocoapods. enter image description here

Мои контроллеры ViewController, которые я хочу проверить, находятся в модулях. Когда я хочу написать модульный тест, я уже получаю сообщение об ошибке с import MyApplication

, в котором говорится

No such module 'MyApplication'

Обратите внимание, что я использовал только «MyApplication» в качестве замены оригинального имени я вычеркнул красным на картинке.

В чем проблема?

РЕДАКТИРОВАТЬ:

код моего тестового класса:

import UIKit
import XCTest
import Pods_MyApplication_Example

@testable import Pods_MyApplication

class Tests: XCTestCase {

    override func setUp() {
        super.setUp()
        // Put setup code here. This method is called before the invocation of each test method in the class.
    }

    override func tearDown() {
        // Put teardown code here. This method is called after the invocation of each test method in the class.
        super.tearDown()
    }

    func testExample() {
        // This is an example of a functional test case.
        XCTAssert(true, "Pass")
    }

    func testPerformanceExample() {
        // This is an example of a performance test case.
        self.measure() {
            // Put the code you want to measure the time of here.
        }
    }

}

Чтобы создать тестовую цель, в тестовом навигаторе я нажимаю «+» и затем выбираю «Новая единичная тестовая цель»

enter image description here

Извините, если какая-либо информация отсутствует. Я добавлю их, если они есть!

РЕДАКТИРОВАТЬ 2: Изменено изображение, которое может предоставить больше информации

Ответы [ 2 ]

0 голосов
/ 15 апреля 2020

Спасибо за ответы. Мне пришлось добавить плагин / приложение, которое я хочу протестировать, к цели теста в моем Podfile. Таким образом, подфайл выглядит так:

use_frameworks!
target "MyApplication_tests" do
  pod 'MyApplication', :path => '../'
end

После запуска pod update я мог бы затем импортировать и протестировать свое приложение.

0 голосов
/ 14 апреля 2020

Вы должны использовать @testable import, чтобы импортировать модуль вашего приложения для модульного тестирования. Вы должны указать имя цели вашего приложения Pods_MyApplication_Example, а не имя проекта. В вашем примере это будет выглядеть следующим образом:

@testable import Pods_MyApplication_Example

И удалите оператор импорта, который импортирует цель приложения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...