我的单元测试.pch文件中有以下内容,可以让我的单元测试为本地化文件找到正确的包,在升级到Xcode8之前,这个包运行良好。
#undef NSLocalizedString
#define NSLocalizedString(key, comment) [[NSBundle bundleWithIdentifier:@"Tests-Unit"] localizedStringForKey:(key) value:@"" table:nil]现在,我收到警告
Ambiguous expansion of macro NSLocalizedString 这将解释为什么我的单元测试失败了,因为他们再也找不到本地化的字符串值了。
有什么不对吗?我现在有什么需要改变的吗?
编辑:,我有一种感觉,它与我所有的源文件都在2中,目标是,即一个用于项目,一个用于单元测试,这就是我们设置它的方式。我正在努力清除这个问题,并从单元测试目标中删除我的所有源文件,并添加了
@testable import ProjectName改为一个单元测试文件,以便能够访问我的代码进行测试,但我现在
File 'MyFile.swift' is part of module 'ProjectName'; ignoring import.发布于 2016-11-08 11:13:55
我终于让一切都恢复正常了。
让我们假设我们的项目名为Panda,它由Obj和Swift文件组成。所有这些文件都在我们的Panda和PandaTests目标中。
步骤1:确保所有文件都具有正确的目标成员资格,即Panda目标:只有源文件、开发框架、图像等和PandaTests目标:只有测试文件、测试框架、模拟数据等
步骤2:确保您的Panda项目将构建设置->启用可测试性设置为Yes。
步骤3:确保您的PandaTests项目将构建设置->产品模块名设置为PandaTests。
步骤4:通过按住选项按钮,然后单击Product,做一个很好的清洁。您应该会看到一个清洁生成文件夹选项。
步骤5:用于Swift单元测试,添加@testable import Panda。由于我们现在已经从PandaTests目标中删除了所有源代码文件,所以单元测试需要一种访问项目文件的方法。这使我们的Swift单元测试能够访问我们的Swift文件和包含在我们的Panda-Bridging-Header.h.中的那些Obj-C文件
发布于 2016-11-08 02:03:11
在项目生成设置中,将-Wno-ambiguous-macro添加到其他C标志
它解决了这个问题(警告已经消失),但不确定副作用是什么。
https://stackoverflow.com/questions/39635624
复制相似问题