swift 如何使用子类名称检查XCTestCase子类是否存在

fzsnzjdm  于 2023-03-22  发布在  Swift
关注(0)|答案(1)|浏览(127)

我的单元测试被划分为XCTestCase的不同子类。
对于应用程序的特定初始化,我想检查某个XCTestCase子类的单元测试是否已经启动。
这样的子类是使用

class SomeTestCase: XCTestCase { //… }

我知道可以使用以下命令检查XCTestCase是否存在

NSClassFromString("XCTestCase") != nil

这是可行的,但是

NSClassFromString("SomeTestCase") != nil

不起作用。
为什么这个检查对XCTestCase的子类不起作用?我怎样才能检查它的存在?
附言:我知道我可以在方案中设置一个启动参数。但是我不得不对不同的子类使用不同的方案,这是不可行的。

ldfqzlk8

ldfqzlk81#

我认为行为上的差异是因为SomeTestCase是一个Swift类,它的类名将包括定义它的模块。
如果使用NSStringFromClass(SomeTestCase.self),则可以看到正在使用的名称。
或者,你可以给予测试类一个显式的名称,以便在Objective-C环境中使用:

@objc(SomeTestCase)
class SomeTestCase: XCTestCase { //… }

相关问题