ฉันเอาหัวพิงกำแพงพยายามหาสาเหตุว่าทำไม IntelliJ / Android จึงรายงาน "ชุดทดสอบว่างเปล่า" ฉันมีโปรเจ็กต์เล็ก ๆ ที่มีโมดูล IntelliJ สองโมดูล ("โปรเจ็กต์" ใน Eclipse) โมดูลทดสอบหน่วยมี AndroidManifest.xml ของตัวเองซึ่งฉันได้วางไว้ที่ด้านล่าง ฉันกำลังพยายามเรียกใช้ActivityUnitTestCase
เนื่องจากการทดสอบจะขึ้นอยู่กับContext
-object
nilzor.myapp
ชื่อแพคเกจของโมดูลหลักคือ ชื่อ pacakge ของโมดูลทดสอบคือnilzor.myapp.tests
เหตุใดนักวิ่งทดสอบจึงไม่ตรวจจับtestBlah()
-method เป็นการทดสอบ
<?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>
และนี่คือคลาสทดสอบของฉัน:;
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);
}
}
ฉันได้อ่านพื้นฐานการทดสอบเอกสารการทดสอบกิจกรรมและลองทำตามบล็อกการทดสอบ Hello worldนี้แม้ว่าจะเป็นสำหรับ Eclipse ก็ตาม ฉันไม่สามารถให้นักวิ่งทดสอบค้นหาและเรียกใช้การทดสอบของฉันได้ ผมทำอะไรผิดหรือเปล่า?
บางคำถามที่ฉันยังไม่แน่ใจคือ:
- ฉันต้องการคำอธิบายประกอบเหนือวิธีทดสอบหน่วยหรือไม่?
- ฉันต้องใส่คำนำหน้าเมธอดนี้ด้วย "test" หรือว่าเป็นเพียงการทดสอบ JUnit
- ฉันสามารถทำการทดสอบในแพ็คเกจย่อยได้
nilzor.myapp.tests
หรือไม่?
แต่คำถามหลักของโพสต์นี้คือทำไมนักวิ่งทดสอบไม่ตรวจพบการทดสอบของฉัน ?
cmd+shift+t
ทางลัดที่จะสร้างคลาสทดสอบโดยอัตโนมัติในตำแหน่งแพ็คเกจที่ถูกต้องซึ่งตรงกับคลาสที่คุณกำลังแก้ไข