iOS HOW测试失败
iOS KIF test failure
我正在尝试学习在示例应用中使用 KIF 进行自动化 UI 测试。我的简单测试不断失败。
我的代码:
#import <XCTest/XCTest.h>
#import <KIF/KIF.h>
@interface AutomatedUITestsSampleUITests : KIFTestCase
@end
@implementation AutomatedUITestsSampleUITests
- (void)setUp {
[super setUp];
// Put setup code here. This method is called before the invocation of each test method in the class.
// In UI tests it is usually best to stop immediately when a failure occurs.
self.continueAfterFailure = NO;
// UI tests must launch the application that they test. Doing this in setup will make sure it happens for each test method.
[[[XCUIApplication alloc] init] launch];
// In UI tests it’s important to set the initial state - such as interface orientation - required for your tests before they run. The setUp method is a good place to do this.
}
- (void)tearDown {
// Put teardown code here. This method is called after the invocation of each test method in the class.
[super tearDown];
}
- (void)testExample {
[tester waitForViewWithAccessibilityLabel:@"LOGIN - Button"];
[tester tapViewWithAccessibilityLabel:@"LOGIN - Button" traits:UIAccessibilityTraitButton];
}
我已将辅助功能标签 LOGIN - Button
设置为情节提要中的 UI 按钮,同时辅助功能已启用。
我在控制台中得到这个:
Test Case '-[AutomatedUITestsSampleUITests testExample]' started.
t = 0.00s Start Test at 2017-06-16 13:45:07.071
t = 0.00s Set Up
t = 0.04s Launch com.UITests.AutomatedUITestsSample
t = 4.63s Waiting for accessibility to load
t = 8.77s Wait for app to idle
t = 10.48s Tear Down
Test Case '-[AutomatedUITestsSampleUITests testExample]' failed (10.868 seconds).
Test Suite 'AutomatedUITestsSampleUITests' failed at 2017-06-16 13:45:17.939.
Executed 1 test, with 1 failure (1 unexpected) in 10.868 (12.735) seconds
Test Suite 'AutomatedUITestsSampleUITests.xctest' failed at 2017-06-16 13:45:17.940.
Executed 1 test, with 1 failure (1 unexpected) in 10.868 (12.739) seconds
Test Suite 'All tests' failed at 2017-06-16 13:45:17.941.
Executed 1 test, with 1 failure (1 unexpected) in 10.868 (12.743) seconds
这是一个非常简单的测试。为什么会失败?提前致谢。
如果您有权访问 XCUIApplication
,则您的项目配置有问题。 KIF 测试目标应该是 "Unit Test Target",而不是 "UI Test Target"。如果配置正确,则无需启动应用程序(也不可能进行应用程序启动操作)——它会在单元测试开始时启动。当您使用 UI 测试目标时,您的测试 运行 在单独的进程中并且 KIF 无法访问您的应用程序。
我建议使用 this guide
再次配置您的测试目标
我正在尝试学习在示例应用中使用 KIF 进行自动化 UI 测试。我的简单测试不断失败。 我的代码:
#import <XCTest/XCTest.h>
#import <KIF/KIF.h>
@interface AutomatedUITestsSampleUITests : KIFTestCase
@end
@implementation AutomatedUITestsSampleUITests
- (void)setUp {
[super setUp];
// Put setup code here. This method is called before the invocation of each test method in the class.
// In UI tests it is usually best to stop immediately when a failure occurs.
self.continueAfterFailure = NO;
// UI tests must launch the application that they test. Doing this in setup will make sure it happens for each test method.
[[[XCUIApplication alloc] init] launch];
// In UI tests it’s important to set the initial state - such as interface orientation - required for your tests before they run. The setUp method is a good place to do this.
}
- (void)tearDown {
// Put teardown code here. This method is called after the invocation of each test method in the class.
[super tearDown];
}
- (void)testExample {
[tester waitForViewWithAccessibilityLabel:@"LOGIN - Button"];
[tester tapViewWithAccessibilityLabel:@"LOGIN - Button" traits:UIAccessibilityTraitButton];
}
我已将辅助功能标签 LOGIN - Button
设置为情节提要中的 UI 按钮,同时辅助功能已启用。
我在控制台中得到这个:
Test Case '-[AutomatedUITestsSampleUITests testExample]' started.
t = 0.00s Start Test at 2017-06-16 13:45:07.071
t = 0.00s Set Up
t = 0.04s Launch com.UITests.AutomatedUITestsSample
t = 4.63s Waiting for accessibility to load
t = 8.77s Wait for app to idle
t = 10.48s Tear Down
Test Case '-[AutomatedUITestsSampleUITests testExample]' failed (10.868 seconds).
Test Suite 'AutomatedUITestsSampleUITests' failed at 2017-06-16 13:45:17.939.
Executed 1 test, with 1 failure (1 unexpected) in 10.868 (12.735) seconds
Test Suite 'AutomatedUITestsSampleUITests.xctest' failed at 2017-06-16 13:45:17.940.
Executed 1 test, with 1 failure (1 unexpected) in 10.868 (12.739) seconds
Test Suite 'All tests' failed at 2017-06-16 13:45:17.941.
Executed 1 test, with 1 failure (1 unexpected) in 10.868 (12.743) seconds
这是一个非常简单的测试。为什么会失败?提前致谢。
如果您有权访问 XCUIApplication
,则您的项目配置有问题。 KIF 测试目标应该是 "Unit Test Target",而不是 "UI Test Target"。如果配置正确,则无需启动应用程序(也不可能进行应用程序启动操作)——它会在单元测试开始时启动。当您使用 UI 测试目标时,您的测试 运行 在单独的进程中并且 KIF 无法访问您的应用程序。
我建议使用 this guide
再次配置您的测试目标