我想在日志中附加一条消息,其中包含即将运行的测试方法的名称。我想在我的测试超类中使用setUp方法执行此操作,因此我无处可重复代码。
我想做这样的事情:
- (void) setUp {
[super setUp];
[self log:@NSStringFromSelector(_cmd)];
}
但是,_cmd总是将“setUp”作为其字符串,而我想要“test00TestTheThing”
有办法做到这一点吗?
答案 0 :(得分:5)
我发现了这个:
self.name
然而,这给了我“ - [AppUITests test00TestTheThing]”
答案 1 :(得分:1)
不知道它是否仍然有用,但是是否有人需要它:
您可以使用self.name
,然后将获得带有测试名称的类的名称。
要删除类名称并仅保留测试名称,请使用replacingOccurrences
函数
示例:
class ClassName: XCTestCase {
override func setUp() {
// get the name and remove the class name and what comes before the class name
var currentTestName = self.name.replacingOccurrences(of: "-[ClassName ", with: "")
// And then you'll need to remove the closing square bracket at the end of the test name
currentTestName = currentTestName.replacingOccurrences(of: "]", with: "")
}