2013-11-22 48 views
8

Tôi thiết lập dự án của mình để chạy với Robolectric và gradle-android-test-plugin. Điều này tất cả các công trình tốt và thử nghiệm đầu tiên đang chạy và không.Đừng thất bại việc xây dựng gradle nếu một thử nghiệm thất bại với gradle-android-test-plugin

Nếu thử nghiệm không thành công, việc này cũng sẽ không thành công trong việc xây dựng gradle. Có cách nào để cho phép xây dựng tiếp tục và viết ra các bài kiểm tra không thành công để đánh giá trong một bước sau?

Kế hoạch là tích hợp thử nghiệm trong máy chủ tích hợp liên tục và ở đó bản dựng chỉ nên không ổn định nếu thử nghiệm không thành công.

Trả lời

10

Cú pháp đúng với AndroidConnectedTests là như sau:

project.gradle.taskGraph.whenReady { 
    connectedAndroidTest { 
     ignoreFailures = true 
    } 
} 

Bây giờ nhiệm vụ kiểm tra không được thất bại trong việc xây dựng nữa và bạn có thể nhận các cuộc thử nghiệm thất bại với xây dựng máy chủ của bạn để Markt xây dựng như không ổn định, vv

+0

Nếu bạn đang chạy tác vụ (ví dụ) 'connectedAndroidTestFoo' thay vì' connectedAndroidTest' thì dòng thứ hai của tập lệnh (xem ở trên) phải là 'connectedAndroidTestFoo {'. 'Foo' là một 'flavour' – Toochka

7

Hmm. Vâng, bạn có hai lựa chọn tôi nghĩ. Một là sử dụng

testTask.ignoreFailures = true 

để không làm nhiệm vụ thất bại khi thử nghiệm không thành công.

Một cách tiếp cận khác là chạy lệnh gradle của bạn bằng '--continue'. Thao tác này sẽ thực thi càng nhiều tác vụ càng tốt và liệt kê các tác vụ không thành công ở cuối và không dừng sau khi tác vụ đầu tiên thất bại.

+0

Không có testTask trong dự án của tôi để thay đổi giá trị này. Có lẽ điều này là cụ thể cho các nhiệm vụ thử nghiệm Java? Tôi đang sử dụng Gradle cho Android. – Janusz

+0

"testTask" chỉ là trình giữ chỗ cho nhiệm vụ kiểm tra của bạn. bạn phải thiết lập thuộc tính ignoreTestFailures thành true trên nhiệm vụ kiểu "Test" thất bại trong việc xây dựng của bạn –

+0

Có một nhiệm vụ được gọi là test nhưng thiết lập thuộc tính này không làm gì cả. Nhưng tôi không biết đây có phải là bài kiểm tra chính xác hay không vì các bài kiểm tra được thực thi bởi plugin của bên thứ ba: android-test. – Janusz

Các vấn đề liên quan