我使用 Xcode 創建了名為 Tester 的新 Multiplatform 應用程式,然后添加了一個超級簡單的類:
class Transaction {
var time = "1"
}
在 Tests_iOS 我有這個:
import XCTest
@testable import Tester
class Tests_iOS: XCTestCase {
func testExample() throws {
let t = Transaction()
XCTAssertEqual(t.time, "1")
}
}
該應用程式可以編譯,但是當我嘗試運行測驗時,編譯失敗并出現以下錯誤:
Undefined symbols for architecture arm64:
"type metadata accessor for Tester.Transaction", referenced from:
Tests_iOS.Tests_iOS.testExample() throws -> () in Tests_iOS.o
"Tester.Transaction.__allocating_init() -> Tester.Transaction", referenced from:
Tests_iOS.Tests_iOS.testExample() throws -> () in Tests_iOS.o
ld: symbol(s) not found for architecture arm64
我究竟做錯了什么?這是在使用 Xcode 13.3 的 M1 Mac 上
uj5u.com熱心網友回復:
問題很可能是您已將測驗添加到在您創建新的多平臺專案時自動創建的測驗目標中,并且該目標是 UI 測驗目標,而不是普通的單元測驗目標。
對于這些測驗,您不會像 Transaction 類那樣訪問應用程式的公共 API,而是訪問 UI 組件,因此測驗框架無法訪問 Transaction 類。
解決方案是創建一個新的單元測驗目標,File -> New -> Target... 并選擇 Unit Test(請記住選擇正確的平臺,因為這需要針對每個支持的平臺單獨完成)。
完成后,將您的測驗移動到新目標或將其復制到生成的測驗檔案中,您的測驗將構建并運行。
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/462577.html
上一篇:如何從嵌套的json回傳物件
