Xcodebuild не запускает тесты, которые являются подклассами подкласса XCTestCase - PullRequest
1 голос
/ 28 марта 2020

Я пишу RESTful API, и, поскольку многие объекты в моей базе данных имеют похожее поведение, мне удалось написать обобщенный c класс тестового примера, который должен быть разделен на подклассы путем указания универсального c типа параметра для каждого подкласса. :

class CrudEntityTests<Entity>: XCTestCase where Entity: Content, Entity: MySQLModel {
    ...
    createEntityTest() throws { ... }
    editEntityTest() throws { ... }
    noEntityTest() throws { ... }
    fetchEntitiesTest() throws { ... }
    deleteEntityTest() throws { ... }
    creationPerformanceTest() throws { ... }
}

Тогда любой подкласс CrudEntityTest должен указывать конкретный тип. Например:

class PostTests: CrudEntityTests<Post> {
    ...
    testCreatePost() throws {
        try super.createEntityTest()
    }
    // Etcetera...
}

Теперь проблема в том, что если я это сделаю, то xCode не распознает такой класс, как PostTests, как часть классов для тестирования. Если я запускаю тесты вручную, нажимая галочку рядом с именем класса в xCode, они запускаются. Но если я попытаюсь сделать тестовую сборку с помощью xCode, нажав ⌘ + U, все тесты, которые подкласс CrudEntityTests, не будут запущены. Кроме того, эти тесты не запускаются с помощью команды xcodebuild. Для ясности, если я изменю PostTests таким образом, чтобы он не наследовал CrudEntityTests, но это был прямой суперкласс XCTestCase, тогда тесты запускаются с помощью xcodebuild и нажатием ⌘ + U. Кто-нибудь знает, как решить эту проблему?

...