2016-08-25 2 views
0

문제는 예를 들어 Calabash와 같이 특정 양 또는 XCUITests 그룹을 실행할 수 있기를 원합니다. Calabash에서는 특정 태그로 표시된 일련의 테스트를 실행할 수 있습니다. 그래서 이것을 달성하기 위해 내가 할 수있는 것이 있는지 궁금합니다. 테스트 그룹을 묶음 또는 스킴으로 나눌 수 있다는 것을 알고 있지만, 내가 원하는 것을 선택하지 않았습니다.XCUITests 특정 집합을 실행하십시오.

그래서 지금까지 특정 테스트 만 실행할 수 있지만 일련의 테스트는 실행할 수 없다는 것을 알았습니다.

편집 :

xcodebuild 테스트 -workspace -scheme -destination은 - 단지 테스트 : UITestBundle -tag

그 길에서 나는 것

은 기본적으로 내가 좋아하는 수있는 실행 명령 무언가가되고 싶어요 내 프로젝트의 작은 영역과 관련된 특정 기능 만 테스트 할 수 있으므로 잠재적으로 많은 시간이 걸릴 수있는 모든 번들을 실행할 필요가 없습니다. CI에서 이것을 설정할 수 있습니다. 그리고 다른 테스트를 실행할 때마다 코드를 변경할 필요가 없습니다.

답변

1

그것은 엑스 코드 8.와 지금이 비디오

https://developer.apple.com/videos/play/wwdc2016/409/ 가능 가능합니다.

enter image description here

+0

그래서, 내가 찾고있는 것이 아닙니다. 왜냐하면 매번 다른 테스트 세트를 변경해야 할 때마다 새로운 테스트 번들을 만들어야하기 때문입니다. 이것은 엉덩이의 고통입니다. 또한 저는 CI를 사용하기 때문에 정확한 테스트 세트를 동적으로 구성하기가 어렵습니다. –

3

당신은 시작 인수에 의해 실행을 적용하고 해당 값을 기준으로 테스트를 건너 뛸 수 있습니다. 귀하의 요구 사항에 따라 값을 IsSkippingTests 같은 시작의 Arg을 만들고 설정 한 다음 각 테스트의 시작 부분에 당신은 같은 코드를 추가 할 수 있습니다

guard LA.valueOfLA("-IsSkippingTests") == "requiredFunctionality" else { return } 

그리고 valueOfLA 정적 메소드를 포함하는 구조체 LA을 정의

public struct LA { 
static public func valueOfLA(key: String) -> String? { 
    var arguments = NSProcessInfo.processInfo().arguments 

    if let index = arguments.indexOf(key) where index + 1 < arguments.count { 
     return arguments[index + 1] 
    } 

    return nil 
} 

여러분이 제공 한 값에 따라 테스트 세트를 실행하고 원하지 않는 것을 건너 뛸 수 있습니다. 여러 값을 설정하고 valueForLA 메소드를 수정하여 처리 할 수도 있습니다.

+0

예, 그렇지만 다른 테스트 세트를 실행할 때마다 코드베이스를 수정해야합니다. 이 방법은 당분간 몇 가지 검사를 완전히 비활성화해야 할 때 매우 유용하지만 좀 더 동적 인 것이 필요합니다. 실행 구성 또는 동적 번들 구축과 같은 것이므로 설정을 신속하게 변경하고 CI에 대한 특정 테스트를 실행할 수 있습니다. –

관련 문제