Swift 运行XCTests时访问主应用程序包

Swift 运行XCTests时访问主应用程序包,swift,bundle,xctest,nstask,Swift,Bundle,Xctest,Nstask,在测试target->General->Testing中:将主机应用程序设置为None,这样就不会启动任何应用程序 但在这种情况下,我无法使用Bundle.main.resourcePath并访问我的主应用程序的资源(其中一些命令文件作为资源包含,我需要使用Process()运行它们) 有人能提出解决方案吗?捆绑包(标识符:“com.something.app”)将为您获取特定捆绑包ID的捆绑包。问题是,如果您的主目标的捆绑包ID发生更改,则此操作将失败 您还可以尝试获取特定类的捆绑包: let

在测试
target->General->Testing中:将主机应用程序设置为None
,这样就不会启动任何应用程序

但在这种情况下,我无法使用
Bundle.main.resourcePath
并访问我的主应用程序的资源(其中一些命令文件作为资源包含,我需要使用
Process()
运行它们)

有人能提出解决方案吗?

捆绑包(标识符:“com.something.app”)
将为您获取特定捆绑包ID的捆绑包。问题是,如果您的主目标的捆绑包ID发生更改,则此操作将失败

您还可以尝试获取特定类的捆绑包:

let bundle=bundle(for:SomeClass.self)


其中,
SomeClass
是主捆绑包中的一个类。

将文件添加到测试目标的“复制捆绑包资源”,然后使用以下代码获取资源路径,而不是
“\(bundle.main.resourcePath!)/Test.command”

let testBundle=Bundle(for:type(of:self))

让path=“\(testBundle.resourcePath!)/test.command”“

我尝试了“Bundle(标识符:mainappbundleid)”,但是当测试目标运行时,这会给出nil,而“Bundle(for:SomeClass.self)”会给出测试目标本身的Bundle。我仍然被卡住。当测试目标运行时,主应用程序Bundle会加载吗(因为主机应用程序设置为none)?这可能就是捆绑包(标识符)给出零的原因?