2012-10-23 32 views
6

Tôi có một dự án thử nghiệm riêng biệt trong Eclipse đã chạy thành công trong một thời gian trong cả dòng lệnh và Eclipse. Trong khi sử dụng Jenkins để chạy thử nghiệm của tôi, tôi đã chạy vào vấn đề mà các InstrumentationTestRunner tiêu chuẩn không đầu ra trong một định dạng xml hỗ trợ Jenkins. Tôi đã đọc trên internet để sử dụng một InstrumentationTestRunner tùy chỉnh. Điều này làm việc trong dòng lệnh bằng cách sử dụng ADB, nhưng thất bại trong Eclipse khi chạy như Android Test Case.Sử dụng InstrumentationTestRunner tùy chỉnh trong Eclipse gây ra lỗi

Tôi đã tải một Á hậu kiểm tra tùy chỉnh thiết bị đo đạc (com.neenbedankt.android.test) và thêm nó vào AndroidManifest như thế này:

<?xml version="1.0" encoding="utf-8"?> 
<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
    package="com.testedapplication.test" 
    android:versionCode="1" 
    android:versionName="1.0" > 

    <uses-sdk android:minSdkVersion="7" /> 

    <instrumentation 
     android:name="com.neenbedankt.android.test.InstrumentationTestRunner" 
     android:targetPackage="com.testedapplication" /> 

    <application 
     android:icon="@drawable/ic_launcher" 
     android:label="@string/app_name" > 
     <uses-library android:name="android.test.runner" /> 
    </application>  
</manifest> 

Đây là lỗi mà tôi nhận được trong Eclipse:

[Test Project] không được định cấu hình chính xác để chạy thử nghiệm: Thuộc tính targetPackage cho thiết bị android.test.InstrumentationTestRunner trong tệp AndroidManifest.xml không thể tìm thấy!

Bạn có thể thấy rằng tôi đã đặt targetPackage ở đó, vì vậy tôi không chắc mình còn có thể làm gì khác?

Trả lời

12

Thêm cả hai công cụ trong tệp AndroidManifest.xml của bạn.

<instrumentation 
    android:name="android.test.InstrumentationTestRunner" 
    android:targetPackage="com.example.myapp" /> 

<instrumentation 
    android:name=".MyRunner" 
    android:targetPackage="com.example.myapp" /> 

Sau đó đi đến Package Explorer -> $ (Test của bạn Prject $) -> Run As -> cấu hình Run -> Android JUnit Test -> $ (Dự án thử nghiệm của bạn) -> Nhạc cụ Runner và chọn Á hậu của bạn ở đó.

+2

Tôi đã thử lại lần nữa, có vẻ như android.test.InstrumentationTestRunner không cần. Những gì bạn phải làm chỉ là thay đổi cài đặt Thiết bị đo tốc độ. –

+2

Người đàn ông, tôi yêu stackoverflow. –

0

Vì tôi không thể thấy toàn bộ cài đặt dự án của bạn, đây là danh sách kiểm tra mà tôi muốn thử.

  1. Bạn có dự án thử nghiệm riêng biệt trong Eclipse không? Khối thiết bị đo lường ở trên trong tệp kê khai của dự án nguồn của bạn hay trong tệp kê khai của dự án thử nghiệm?

  2. Bạn có bao gồm khối < sử dụng-thư viện android: name = "android.test.runner"/> không?

  3. Bạn có đặt khối thiết bị đo đạc các dự án thử nghiệm của bên ngoài < ứng dụng > khối và < sử dụng thư viện > khối bên trong khối ứng dụng các dự án thử nghiệm không?

  4. Bạn đã thử tạo dự án thử nghiệm trong Eclipse thông qua "Dự án mới -> Dự án thử nghiệm Android" và chỉ thay đổi lớp thiết bị đo đạc ở đó sau khi thêm mã nguồn? Nếu bạn không thay đổi lớp thiết bị đo đạc thì nó có hoạt động không?

  5. Bạn có đang chạy thử nghiệm trong Eclipse bằng cách thực hiện "Chạy thử - > kiểm tra Android JUnit" không?

Nếu bạn đã làm tất cả, tôi nghĩ rằng việc dán toàn bộ tệp AndroidManifest của bạn sẽ giúp làm rõ một chút và liệu bạn có 2 dự án riêng biệt hay không.

+0

Tôi đã chỉnh sửa các nhận xét ban đầu của tôi để trả lời câu hỏi của bạn. Trước khi tôi chuyển sang Á hậu thử nghiệm tùy chỉnh, các thử nghiệm của tôi đã hoạt động từ cả dòng lệnh và Eclipse. Xem các chỉnh sửa mới của tôi trong câu hỏi gốc. Cảm ơn. – SpecialEd

0

Ah cho đến nay tôi đã có thể làm cho nó hoạt động bằng cách có cả Á hậu android.test.InstrumentationRunner VÀ Á hậu thử nghiệm khách hàng được mô tả trong tệp kê khai. Tôi dường như chạy từ Eclipse sẽ sử dụng android.test.InstrumentationRunner và chạy từ dòng lệnh sẽ sử dụng runner thử nghiệm tùy chỉnh nếu thiết lập của nó trong kịch bản kiến.

1

Để làm cho nhật thực chọn tùy chỉnh runner theo mặc định khi chạy dưới dạng/android junit - chỉ cần chuyển đổi thứ tự trong tệp kê khai. Đảm bảo rằng bạn là người đầu tiên

<instrumentation 
android:name="*.Custom.TestRunner" 
android:targetPackage="com.*" /> 

<instrumentation 
android:name="*.InstrumentationTestRunner" 
android:targetPackage="com.*" /> 
Các vấn đề liên quan