AliSoftware / AliSoftware/Reusable

Undefined symbols when compiling for unit tests

オープン
#86 コメント 1 件 リアクション 0 件 担当者 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 を短くまとめたダイジェスト。