Xcode 测试未检测到我的 class
Xcode Test not detect my class
我的项目中有 class 名为 Meal.swift 和单元测试
func testMealInitialization() {
// Success case.
let potentialItem = Meal(name: "Newest meal", photo: nil, rating: 5)
XCTAssertNotNil(potentialItem)
// Failure cases.
let noName = Meal(name: "", photo: nil, rating: 0)
XCTAssertNil(noName, "Empty name is invalid")
}
但问题是:使用未解析的标识符"Meal"
Xcode 7 添加@testable import
语句以简化单元测试。在单元测试 class 文件的顶部,添加以下语句:
@testable import MyApp
其中 MyApp 是您的 iOS 应用程序的名称。现在单元测试目标应该能够在您的应用中找到 classes 和 运行 测试。如果您收到 link 错误,指出 Xcode 找不到您的应用程序 classes,请确保产品模块名称构建设置的值与您在 @testable import
语句中使用的名称匹配, MyApp 在这个例子中。
如果 @testable import
对您不起作用,解决方法是让您的应用 class 成为单元测试目标的成员。您可以使用文件检查器在 Xcode 中设置文件的目标成员资格。
@testable import MyApp
应该可以正常工作。请记住在 Debug
中为您的 UITest
目标设置适当的配置。
我也遇到了这个问题,对我有用的是重新加载我的测试文件并重新输入
@testable import FoodTracker
然后在那个时候,它检测到我的 FoodTracker classes(膳食 class)并且错误消失了。
点击您的膳食 class。然后在右侧您会看到 'Target Membership' 部分。 Select 你的测试项目。
(Xcode 7)
瞧。
就我而言,我只在刚刚制作的新 class 中出错,这让我感到困惑。因此,它通过 select 单元测试 目标在我的新 class class 成员资格 下工作。或者删除 class,再次创建新的 class,然后 select Unit Test Target 在那个新的 class.
我的项目中有 class 名为 Meal.swift 和单元测试
func testMealInitialization() {
// Success case.
let potentialItem = Meal(name: "Newest meal", photo: nil, rating: 5)
XCTAssertNotNil(potentialItem)
// Failure cases.
let noName = Meal(name: "", photo: nil, rating: 0)
XCTAssertNil(noName, "Empty name is invalid")
}
但问题是:使用未解析的标识符"Meal"
Xcode 7 添加@testable import
语句以简化单元测试。在单元测试 class 文件的顶部,添加以下语句:
@testable import MyApp
其中 MyApp 是您的 iOS 应用程序的名称。现在单元测试目标应该能够在您的应用中找到 classes 和 运行 测试。如果您收到 link 错误,指出 Xcode 找不到您的应用程序 classes,请确保产品模块名称构建设置的值与您在 @testable import
语句中使用的名称匹配, MyApp 在这个例子中。
如果 @testable import
对您不起作用,解决方法是让您的应用 class 成为单元测试目标的成员。您可以使用文件检查器在 Xcode 中设置文件的目标成员资格。
@testable import MyApp
应该可以正常工作。请记住在 Debug
中为您的 UITest
目标设置适当的配置。
我也遇到了这个问题,对我有用的是重新加载我的测试文件并重新输入
@testable import FoodTracker
然后在那个时候,它检测到我的 FoodTracker classes(膳食 class)并且错误消失了。
点击您的膳食 class。然后在右侧您会看到 'Target Membership' 部分。 Select 你的测试项目。 (Xcode 7) 瞧。
就我而言,我只在刚刚制作的新 class 中出错,这让我感到困惑。因此,它通过 select 单元测试 目标在我的新 class class 成员资格 下工作。或者删除 class,再次创建新的 class,然后 select Unit Test Target 在那个新的 class.