初始化提交
This commit is contained in:
68
WebDriverAgentLib/Utilities/FBFailureProofTestCase.m
Normal file
68
WebDriverAgentLib/Utilities/FBFailureProofTestCase.m
Normal file
@@ -0,0 +1,68 @@
|
||||
/**
|
||||
* Copyright (c) 2015-present, Facebook, Inc.
|
||||
* All rights reserved.
|
||||
*
|
||||
* This source code is licensed under the BSD-style license found in the
|
||||
* LICENSE file in the root directory of this source tree.
|
||||
*/
|
||||
|
||||
#import "FBFailureProofTestCase.h"
|
||||
|
||||
#import "FBLogger.h"
|
||||
|
||||
@implementation FBFailureProofTestCase
|
||||
|
||||
- (void)setUp
|
||||
{
|
||||
[super setUp];
|
||||
self.continueAfterFailure = YES;
|
||||
// https://github.com/appium/appium/issues/13949
|
||||
self.shouldSetShouldHaltWhenReceivesControl = NO;
|
||||
self.shouldHaltWhenReceivesControl = NO;
|
||||
}
|
||||
|
||||
- (void)_recordIssue:(XCTIssue *)issue
|
||||
{
|
||||
NSString *description = [NSString stringWithFormat:@"%@ (%@)", issue.compactDescription, issue.associatedError.description];
|
||||
[FBLogger logFmt:@"Issue type: %ld", issue.type];
|
||||
[self _enqueueFailureWithDescription:description
|
||||
inFile:issue.sourceCodeContext.location.fileURL.path
|
||||
atLine:issue.sourceCodeContext.location.lineNumber
|
||||
// 5 == XCTIssueTypeUnmatchedExpectedFailure
|
||||
expected:issue.type == 5];
|
||||
}
|
||||
|
||||
- (void)_recordIssue:(XCTIssue *)issue forCaughtError:(id)error
|
||||
{
|
||||
[self _recordIssue:issue];
|
||||
}
|
||||
|
||||
- (void)recordIssue:(XCTIssue *)issue
|
||||
{
|
||||
[self _recordIssue:issue];
|
||||
}
|
||||
|
||||
/**
|
||||
Override 'recordFailureWithDescription' to not stop by failures.
|
||||
*/
|
||||
- (void)recordFailureWithDescription:(NSString *)description
|
||||
inFile:(NSString *)filePath
|
||||
atLine:(NSUInteger)lineNumber
|
||||
expected:(BOOL)expected
|
||||
{
|
||||
[self _enqueueFailureWithDescription:description inFile:filePath atLine:lineNumber expected:expected];
|
||||
}
|
||||
|
||||
/**
|
||||
Private XCTestCase method used to block and tunnel failure messages
|
||||
*/
|
||||
- (void)_enqueueFailureWithDescription:(NSString *)description
|
||||
inFile:(NSString *)filePath
|
||||
atLine:(NSUInteger)lineNumber
|
||||
expected:(BOOL)expected
|
||||
{
|
||||
[FBLogger logFmt:@"Enqueue Failure: %@ %@ %lu %d", description, filePath, (unsigned long)lineNumber, expected];
|
||||
// TODO: Figure out which error types we want to escalate
|
||||
}
|
||||
|
||||
@end
|
||||
Reference in New Issue
Block a user