Tôi đang đập đầu vào tường ở đây để cố gắng tìm ra lý do tại sao IntelliJ / Android lại báo cáo "Bộ thử nghiệm trống". Tôi có một dự án nhỏ với hai Mô-đun IntelliJ ("Dự án" trong Eclipse). Mô-đun kiểm tra Đơn vị có AndroidManifest.xml của riêng nó, mà tôi đã dán ở dưới cùng. Tôi đang cố gắng chạy một ActivityUnitTestCase
, vì các bài kiểm tra sẽ phụ thuộc vào Context
-đối tượng.
Tên gói của mô-đun chính là nilzor.myapp
. Tên pacakge của mô-đun thử nghiệm lànilzor.myapp.tests
Tại sao người chạy thử nghiệm không phát hiện testBlah()
-method như một thử nghiệm?
<?xml version="1.0" encoding="utf-8"?>
<!-- package name must be unique so suffix with "tests" so package loader doesn't ignore us -->
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="nilzor.myapp.tests"
android:versionCode="1"
android:versionName="1.0">
<!-- We add an application tag here just so that we can indicate that
this package needs to link against the android.test library,
which is needed when building test cases. -->
<application>
<uses-library android:name="android.test.runner"/>
</application>
<!--
This declares that this application uses the instrumentation test runner targeting
the package of nilzor.myapp. To run the tests use the command:
"adb shell am instrument -w nilzor.myapp.tests/android.test.InstrumentationTestRunner"
-->
<instrumentation android:name="android.test.InstrumentationTestRunner"
android:targetPackage="nilzor.myapp"
android:label="Tests for nilzor.myapp"/>
</manifest>
Và đây là lớp kiểm tra của tôi:;
package nilzor.myapp.tests;
public class NilzorSomeTest<T extends Activity> extends ActivityUnitTestCase<T>{
public NilzorSomeTest(Class<T> activityClass){
super(activityClass);
}
@SmallTest
public void testBlah(){
assertEquals(1,1);
}
}
Tôi đã đọc các nguyên tắc cơ bản về thử nghiệm , tài liệu thử nghiệm hoạt động và đã thử theo dõi blog thử nghiệm Hello world này , mặc dù blog này dành cho Eclipse. Tôi không thể yêu cầu người chạy thử nghiệm tìm và chạy thử nghiệm của tôi. Tôi đang làm gì sai?
Một số câu hỏi mà tôi vẫn cảm thấy không chắc chắn là:
- Tôi có cần chú thích phía trên phương pháp Unit test không?
- Tôi có cần đặt tiền tố phương thức bằng "test" hay chỉ dành cho các bài kiểm tra JUnit?
- Tôi có thể có các bài kiểm tra trong gói phụ của
nilzor.myapp.tests
?
Nhưng câu hỏi chính của bài viết này là tại sao người chạy thử không phát hiện ra bài thi của tôi ?
@Test
điểm đánh dấu trên đầu bài kiểm tra.
cmd+shift+t
phím tắt sẽ tự động tạo lớp thử nghiệm ở đúng vị trí gói phù hợp với lớp bạn hiện đang chỉnh sửa.