AliSoftware / AliSoftware/Reusable

Undefined symbols when compiling for unit tests

未关闭
#86 1 条评论 0 个 reaction 已指派 0 人 在 GitHub 查看
question
主要语言
Swift
星标
3k
派生
231
PR 合并指标
30 天内没有已合并 PR

描述

I've setup unit tests for my project and want to add View/ViewController instantiation to the tests because the project is modular. When compiling this error message appears when for any methods that came from Reusable.

```
Undefined symbols for architecture x86_64:
"static (extension in Reusable):Reusable.StoryboardSceneBased< where A: __C.UIViewController>.instantiate() -> A", referenced from:
implicit closure #1 () throws -> FooProject.HomeViewController? in FooProjectTests.InstantiationTests.testInstantiations() -> () in InstantiationTests.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
```

I'm not sure why this is happening because the other frameworks can be accessed easily. This is a sample code that generates the error

```swift
@testable import FooProject
import Nimble
import XCTest

class InstantiationTests: XCTestCase {
func testInstantiations() {
expect(HomeViewController.instantiate()).notTo(raiseException())
}
}
```

## Possible Faqs

**Is the project enabled for testability**
Yes

**Do you have other tests besides this?**
Yes

**What do you mean by the project being modular?**
The project has multiple Targets and Configurations. ex

Configurations
- Release
- Release Debug
- Staging
- Staging Debug

Targets
- FooProject
- FooProjectV2

贡献指南

这个仓库没有索引到贡献指南

评估

这个 Issue 还没有评估数据。

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。