2011-11-26 37 views
10

Tôi đã phát triển cho ứng dụng của mình một bộ thử nghiệm Android nhỏ được viết bằng Scala sử dụng thư viện Robotium. Bộ phần mềm dành cho tất cả các ý định và mục đích của một dự án thử nghiệm Android JUnit chuẩn và chạy thành công nếu được khởi chạy từ Eclipse.Tôi làm cách nào để chạy thử nghiệm Android bằng sbt?

Tôi đã xây dựng thành công và chạy ứng dụng Android chính của mình với sbt android-plugin. Ứng dụng chính nằm ở [ProjectDir]/src/main. Tôi cũng có thể thành công build my Android test application nằm trong thư mục [ProjectDir]/tests/src/main. Tôi đã kiểm tra trình giả lập và ứng dụng thử nghiệm dường như đã được cài đặt đúng với lệnh tests/android:install-emulator của android-plugin. Tuy nhiên, khi tôi cố gắng để chạy các dự án thử nghiệm qua sbt tests/android:test-emulator, tôi nhận được:

... 
Test results for InstrumentationTestRunner= 
Time: 0.001 

OK (0 tests) 

Làm thế nào tôi có thể nhận được SBT android-plugin để nhận ra rằng dự án chứa kiểm tra JUnit và chạy chúng?

Trả lời

1

Quy ước đặt tên được sử dụng ở đây giống với JUnit bình thường và như vậy bạn cần đặt tên cho các bài kiểm tra xxxTest.class. Họ cũng cần phải mở rộng TestCase (AndroidTestCase, InstrumentationTestCase vv ...).

Nói cách khác, nhật thực sẽ chạy một lệnh đó sẽ giống như:

adb shell am instrument -w -e class com.android.foo.FooTest,com.android.foo.TooTest com.android.foo/android.test.InstrumentationTestRunner 

Nó sẽ nối tên lớp học để các lệnh để quy ước đặt tên có thể không áp dụng.

Nếu bạn chạy từ SBT, nó sẽ chạy

adb shell am instrument -w com.android.foo/android.test.InstrumentationTestRunner 

mà sẽ tìm thấy tất cả các lớp học dưới cái tên gói của com.android.foo ứng dụng mà kết thúc với someClassNameTest.

+0

Vì vậy, bạn có nói rằng nó hoạt động cho bạn? Đây là các thử nghiệm chạy tốt không thay đổi bên trong trình kiểm tra Junit Android của Eclipse. Tôi không biết về một quy ước đặt tên lớp, nhưng tôi biết về một quy ước đặt tên phương thức - rằng chúng tên phương thức cần phải được bắt đầu bằng từ "test". Các thử nghiệm của tôi mở rộng một lớp tùy chỉnh 'TestFixture' mở rộng' ActivityInstrumentationTestCase2'. –

+0

Bạn đã thử FixtureTest chưa – charroch

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