ไม่พบการทดสอบกับนักวิ่งทดสอบ 'JUnit 4'


106

การทดสอบ Java ของฉันทำงานได้ดีจาก Eclipse แต่ตอนนี้เมื่อฉันเปิดการทดสอบอีกครั้งจากเมนูเรียกใช้ฉันจะได้รับข้อความต่อไปนี้:

No tests found with test runner 'JUnit 4'

ใน.classpathไฟล์ฉันมีjarไฟล์ทั้งหมดและในตอนท้ายมี:

<classpathentry exported="true" kind="con" path="org.eclipse.jdt.junit.JUNIT_CONTAINER/4"/>
    <classpathentry kind="output" path="bin"/>
</classpath>

ฉันจะแก้ไขข้อผิดพลาดนี้และเรียกใช้การทดสอบอีกครั้งได้อย่างไร


1
คุณสามารถโพสต์เนื้อหาของการทดสอบของคุณ (หรืออย่างน้อยก็คือการประกาศชั้นเรียน) นอกจากนี้คุณยังเขียนว่า "at the end have:" โดยไม่มีอะไรอื่น
phtrivier

ลองดูอันนี้สิ .. มันน่าจะช่วยได้ stackoverflow.com/questions/22469480/junit-no-tests-found
prasad vsv

สำหรับJunit 5ดูที่นี่
Anand Rockzz

คำตอบ:


158

สิ่งนี้เพิ่งเกิดขึ้นกับฉัน การสร้างใหม่หรือรีสตาร์ท Eclipse ไม่ได้ช่วยอะไร

ฉันแก้ไขโดยเปลี่ยนชื่อวิธีทดสอบวิธีหนึ่งเพื่อเริ่มต้นด้วย "ทดสอบ ... " (สไตล์ JUnit3) จากนั้นจะพบการทดสอบทั้งหมด ฉันเปลี่ยนชื่อกลับไปเป็นแบบเดิม แต่ก็ยังใช้งานได้


7
ฉันมีวิธีการเช่นเดียวtestQuotesกับวิธีการอื่น ๆ ที่ไม่ได้เริ่มต้นด้วยการทดสอบ แต่ฉันยังไม่ได้รับการทดสอบไม่พบข้อผิดพลาด
Rachel

1
ฉันมีปัญหาเดียวกันกับคลาสที่ขยายออกไปjunit.framework.TestCaseและวิธีการของฉันจำเป็นต้องเริ่มต้นด้วย "การทดสอบ" แทนที่จะขยายTestCaseฉันได้เพิ่มการนำเข้า: import static org.junit.Assert.*;และฉันสามารถตั้งชื่อวิธีการตามที่ฉันต้องการได้ Bizarre ...
MrDrews

6
อย่างจริงจังแม้ว่าการทดสอบจะมีคำอธิบายประกอบ @Test แต่ชื่อฟังก์ชันการทดสอบยังคงต้องขึ้นต้นด้วย "test"?
Brian Shotola

4
คุณสามารถเพิ่ม 2015 และ Eclipse Luna ในรายการนั้นได้เช่นกัน ที่จริงแล้ววิธีการ @Test จำนวนมากของฉันยังคงเริ่มต้นด้วยคำนำหน้า "test" ฉันลบคำนำหน้านั้นออกในการทดสอบหนึ่งครั้งบันทึกแล้วพบการทดสอบทั้งหมด หลังจากนั้นฉันเพิ่มกลับเข้าไปและยังคงพบการทดสอบทั้งหมด ดูเหมือนว่าจะเป็นการเปลี่ยนวิธีการ (ไฟล์?) มากกว่าเพื่อให้ Eclipse ค้นพบทุกอย่างอีกครั้ง
Brian White

2
Android Studio 2.1.1 พฤษภาคม 2016 ยังใช้งานได้ ฉันสงสัยว่าคำตอบนี้จะใช้ได้จนถึงจุดสิ้นสุดของจักรวาลหรือไม่
Blueriver

42

เมื่อเราได้รับข้อผิดพลาดเหล่านี้ดูเหมือนว่า Eclipse จะสับสน รีสตาร์ท Eclipse รีเฟรชโปรเจ็กต์ล้างโปรเจ็กต์ปล่อยให้ Eclipse สร้างใหม่แล้วลองอีกครั้ง เวลาส่วนใหญ่ทำงานเหมือนมีเสน่ห์


1
ใช่ทำงานให้ฉันด้วยและเห็นด้วยกับ dlamblin ขอเตือนให้ลองรีสตาร์ทเสมอสำหรับปัญหาแปลก ๆ ที่ไม่สามารถแก้ไขได้ใน 5 นาทีแรกของการผลิต
Thien

3
ฉันมีปัญหานี้และฉันปิดซอร์สไฟล์ที่ฉันกำหนดคลาสทดสอบของฉันดับเบิลคลิกที่ไฟล์นั้นในเนวิเกเตอร์และมันใช้งานได้ ดังนั้นการปิดและเปิดไฟล์ใหม่จึงใช้งานได้โดยไม่ต้องรีสตาร์ท Eclipse
metamatt

11
สิ่งนี้ทำให้ฉันอยากมองหา IDE ใหม่ สิ่งนี้ได้ผลสำหรับฉัน
Seth M.

1
การปิดและเปิดโครงการใหม่แก้ไขให้ฉัน!
Martin Charlesworth

34

ในเมนูบริบทของไดเร็กทอรี 'test' ของคุณให้เลือก 'Build path' -> 'Use as a source folder' Eclipse ควรเห็นไฟล์ unitTests.java ของคุณเป็นไฟล์ต้นฉบับ คำเตือน 'ไม่พบการทดสอบ JUnit' เกิดขึ้นเนื่องจากไม่มีไฟล์ unitTests.class ในไดเร็กทอรี 'build' ของคุณ


นี่คือวิธีแก้ปัญหาที่เหมาะกับฉัน การรีสตาร์ทไม่ได้ผล
Andree

นี่คือสิ่งที่ฉันได้รับเนื่องจากฉันต้องมีโฟลเดอร์ "test" ไม่อยู่ในโฟลเดอร์ "src" ฉันทำสิ่งนี้แล้วเปิด / ปิดโครงการตามที่คำตอบอื่น ๆ แนะนำและตอนนี้มันรวบรวมและเรียกใช้เป็นการทดสอบ JUnit ขอบคุณ!
quux00

ฉันทำเช่นเดียวกันโดยเลือกโปรเจ็กต์ -> เส้นทางการสร้าง Java -> ที่มา -> เพิ่มโฟลเดอร์ทดสอบ ขอบคุณมาก!
Peter Clause

หาก src / test / groovy อยู่บนเส้นทางการสร้างของคุณเป็นโฟลเดอร์ต้นทางให้ลบออกแล้วเพิ่มอีกครั้ง ง่ายกว่าการถอดและเปลี่ยน @Test ในทุกไฟล์ทดสอบ ...
geneSummons

32

ตรวจสอบว่าคลาสทดสอบของคุณขยาย "TestCase" หรือไม่ ถ้าเป็นเช่นนั้นให้ลบประโยคนั้นออก ชั้นเรียนของคุณไม่จำเป็นต้องขยายจากคลาส "TestCase" เป็นกรณีส่วนใหญ่ที่ฉันเคยเจอ

public class MyTestCase extends TestCase{
  @Test
  public void checkSomething() {
    //...
  }
}
//Result> AssertionFailedError: No test Found in MyTestCase

ต่อไปนี้ TestCase น่าจะใช้ได้

public class MyTestCase {
  @Test
  public void checkSomething() {
    //...
  }
}
//Works fine

มันเป็นคำตอบที่ถูกต้อง ฉันทดสอบกับ IntelliJ และ JUnit 4.1 แล้วมันก็ใช้ได้!
ดิโอพุง

ปัญหาที่ฉันกำลังเผชิญคือในคราสการทดสอบ JUnit ของฉันทำงานได้ดี แต่เมื่อฉันส่งออกไปยัง JAR ฉันได้รับข้อผิดพลาดข้างต้น ความคิดใด ๆ ?
tryToLearn

มันเป็นวิธีอื่น ๆ ในวันนี้หรือไม่? การเพิ่ม "ขยาย TestCase" ช่วยแก้ปัญหาให้ฉันได้
Heinzlmaen

27

ฉันประสบปัญหาเดียวกันและฉันได้แก้ไขข้อบกพร่องนี้เป็นตัวอย่างที่ไม่ดีบนเว็บและภายในของจูนิท โดยทั่วไปอย่าทำให้ชั้นเรียนของคุณขยาย TestCase ตามที่ตัวอย่างบางส่วนแสดงสำหรับ Junit 4.x. ใช้การทดสอบหลักการตั้งชื่อหรือถ้าคุณต้องการมีคำอธิบายประกอบคุณสามารถใช้ @RunWith (JUnit4.class)

หากคุณต้องการเข้าถึงวิธีการยืนยันให้ขยาย Assert หรือใช้การนำเข้าแบบคงที่

หากคลาสของคุณขยาย TestCase แม้ว่าคุณจะใช้ Junit 4 Runner มันจะถูกเรียกใช้เป็น 3 เนื่องจากในรหัสเริ่มต้นมีการตรวจจับ:

ดู JUnit3Builder และบรรทัด:

boolean isPre4Test(Class<?> testClass) {
    return junit.framework.TestCase.class.isAssignableFrom(testClass);
}

สิ่งนี้จะคืนค่าเป็นจริงและจะไม่ลองทดสอบความเข้ากันได้ของ junit4


2
สิ่งนี้ช่วยแก้ปัญหาให้ฉันได้ หากคุณกำลังดูตัวอย่างก่อนหน้านี้เกี่ยวกับวิธีใช้ Junit ก่อนพวกเขาจะทำให้คุณหลงทาง
Alex Kilpatrick

"ถ้าชั้นเรียนของคุณขยาย TestCase แม้ว่าคุณจะใช้ Junit 4 Runner มันก็จะทำงานเป็น 3" - นี่ไม่เป็นความจริง (อย่างน้อยสำหรับ Groovy และ Intellij IDEA) ฉันใช้ JUnit 4.12 และฉันได้ใส่คำอธิบายประกอบชั้นเรียนด้วย@RunWith(JUnit4)และขยายจาก "GroovyTestCase" โดยที่@RunWith(JUnit4)ฉันไม่ต้องเผชิญกับปัญหาเดียวกัน
Veaceslav Gaidarji

ลักษณะการทำงานยังคงเหมือนกับปี 2017 (JUnit 4.12)
sharmaap


5

อีกวิธีหนึ่งที่เป็นไปได้ที่ฉันจะใส่เข้าไปในวงแหวน: ฉันไม่สามารถเรียกใช้คลาสทดสอบจากหน้าต่างตัวแก้ไขหรือ Package Explorer แต่คลิกขวาที่ชื่อคลาสในมุมมองเค้าร่างแล้วเลือก Run As JUnit ทดสอบได้ผล ... ไปคิด!


เหมือนกันจากมุมมองเค้าร่างมันใช้งานได้ทุกอย่างอื่นไม่ - ฉันได้ลองวิธีแก้ปัญหาทั้งหมดที่โพสต์ใน 3 เธรดล้นสแต็กไม่มีอะไรทำงาน
MPSL

วิธีนี้ใช้ได้ผลสำหรับฉันเช่นกัน แต่ไม่มีประโยชน์สำหรับการทดสอบความครอบคลุมในโครงการ
รวย

4

ไม่มีการทดสอบใน JUnit4 ใช้คำอธิบายประกอบแทนหรือใช้รูปแบบชื่อ JUnit3 แบบเก่า

ตัวอย่าง:

@RunWith(Suite.class)
@SuiteClasses({YourClassWithTests.class})

4

สิ่งนี้เกิดขึ้นกับฉันเช่นกัน ฉันลองรีสตาร์ท Eclipse และนำหน้าวิธีการทดสอบของฉันด้วยการทดสอบ ไม่ได้ผล

ขั้นตอนต่อไปนี้ใช้ได้ผล: เปลี่ยนวิธีการทดสอบทั้งหมดของคุณที่มีอยู่ใน @BeforeClass และ @AfterClass เป็นวิธีการแบบคงที่

กล่าวคือหากคุณมีวิธีทดสอบในรูปแบบด้านล่าง:

@BeforeClass
public void testBeforeClass(){
}

จากนั้นเปลี่ยนเป็น:

@BeforeClass
public static void testBeforeClass(){
}

สิ่งนี้ได้ผลสำหรับฉัน


4

ฉันพบคำตอบแล้ว:

ฉันได้รับข้อผิดพลาดนี้เมื่อฉันดำเนินการทดสอบแบบสแตนด์อโลนจาก eclipse (คลิกขวาที่วิธีการและเลือกที่จะเรียกใช้เป็นการทดสอบ junit)

เมื่อฉันเรียกใช้คลาสที่สมบูรณ์ในฐานะ Junit ทดสอบการทดสอบดำเนินการอย่างถูกต้องด้วยพารามิเตอร์


3

เมื่อฉันประสบปัญหานี้ฉันแค่แก้ไขไฟล์และบันทึก ...


1
สวัสดีเพื่อนและยินดีต้อนรับสู่ Stackoverflow! :) คุณช่วยอธิบายคำตอบของคุณให้ละเอียดได้ไหม
Littm

@Mahesh คุณหมายถึงรีเฟรชไฟล์ (เลือกแล้วกด F5)
Cassian

ฉันประสบปัญหาเดียวกันจากสกาล่ากล่าวคือการทดสอบของฉันเขียนขึ้นสำหรับ JUnit4 แต่อยู่ในสกาลา และวิธีแก้ปัญหาตามที่ @Mahesh แนะนำคือให้คอมไพเลอร์เตะ ไม่ว่าคุณจะทำอะไรเมื่อแก้ไขไฟล์คุณก็ต้องแก้ไข ฉันพิมพ์สิ่งที่ทำให้เกิดข้อผิดพลาดทางไวยากรณ์บันทึกไฟล์จากนั้นเลิกทำและบันทึกอีกครั้ง ทันใดนั้นการทดสอบของฉันก็ดำเนินไป สิ่งนี้เกิดขึ้นกับฉันบ่อยครั้งเช่นอย่างน้อยทุกวันโดยปกติวันละหลายครั้ง
Erick G.Hagstrom

3

ปัญหาของฉันคือการประกาศimport org.junit.Test;หายไป (หรือไม่ได้เพิ่ม?) หลังจากเพิ่มแล้วฉันต้องลบimportประกาศอื่น(Eclipse จะบอกใบ้คุณว่าอันไหน) และทุกอย่างก็เริ่มทำงานอีกครั้ง


3

สายมาก แต่สิ่งที่แก้ปัญหาให้ฉันได้คือชื่อวิธีการทดสอบของฉันทั้งหมดขึ้นต้นด้วยตัวอักษรคำบรรยาย: "public void Test" ทำให้ t ตัวพิมพ์เล็กทำงานได้


มันใช้ได้ผลสำหรับฉัน ... แต่นี่เป็นวิธีแก้ปัญหาที่น่าสับสนอย่างแปลกประหลาด
Anchit Mittal

2

ฉันลองวิธีแก้ปัญหาจากGermán มันใช้ได้กับทุกวิธีจากชั้นเรียนของฉัน แต่ฉันมีชั้นเรียนมากมายในโครงการของฉัน

ฉันจึงลองลบออกจากเส้นทางการสร้างแล้วเพิ่มเข้าไปใหม่ มันทำงานได้อย่างสมบูรณ์แบบ

หวังว่าจะช่วยได้


2

หกปีต่อมา ... และยังคงมีปัญหากับ Eclipse และบางครั้งก็ไม่พบ JUnits

ใน Eclipse Mars 2 ของฉันฉันพบว่ามันไม่รู้จักคลาสทดสอบที่ดึงเข้ามาจาก git หากมี@Testคำอธิบายประกอบมากกว่า 9 หรือ 10 รายการในไฟล์ ฉันต้องการแสดงความคิดเห็นเกี่ยวกับการทดสอบพิเศษใด ๆ เรียกใช้คลาสทดสอบจากนั้นยกเลิกการแสดงความคิดเห็นและเรียกใช้ชั้นเรียนใหม่ ไปคิด ...


คำตอบนี้มีประโยชน์ฉันไม่ได้มีสถานการณ์เหมือนกัน แต่ชื่อวิธีการทดสอบค่อนข้างคล้ายกันและคราสมีปัญหาในการค้นหา เช่นเดียวกับ testCase01, testCare02 ... ฉันต้องแสดงความคิดเห็นเมธอด "testCasexx" อื่น ๆ เพื่อเรียกใช้ testCase01 มิฉะนั้นจะแสดงข้อยกเว้น ทำให้วิธีการทดสอบทั้งหมดของ PUBLIC ดูเหมือนจะแก้ปัญหานี้ได้แล้ว !!
01000001

1

อาจเป็นการกำหนดค่าการเปิดใช้งาน JUnit ของคุณสำหรับคลาสทดสอบแต่ละคลาสและคุณได้เปลี่ยนการกำหนดค่านั้นเป็น "เรียกใช้การทดสอบทั้งหมดในโฟลเดอร์ต้นทางแพ็กเกจหรือโปรเจ็กต์"

แต่นั่นอาจทำให้ข้อความแสดงข้อผิดพลาด "ไม่พบการทดสอบกับนักวิ่งทดสอบ" JUnit 4 "

หรือคุณทำการแก้ไขในชั้นเรียนทดสอบของคุณโดยลบ@Testคำอธิบายประกอบออก
เห็นนี้หน้าวิกิพีเดีย


@Test อยู่ที่นี่ข้อความคือ: ไม่สามารถ faind คลาสหลัก toto.lolo.testrunner (ซึ่งระบุไว้ในการกำหนดค่าการรัน)
user281070

@lamisse: ดังนั้นปัญหา classpath บางประเภท? หรือปัญหาไวยากรณ์: ควรเป็นtoto.lolo.Testrunnerและไม่ใช่toto.lolo.testrunner('T')
VonC

@lamisse: "toto.lolo.Testrunner" เป็นชื่อจริงของคลาส TestRunner ของคุณหรือไม่ มันเป็นสิ่งที่คุณเขียน? โปรเจ็กต์ / jar มีอยู่ในคลาสพา ธ ของคอนฟิกูเรชันการเปิดตัวของคุณหรือไม่
phtrivier

1

ฉันยังประสบปัญหาเดียวกันขณะเรียกใช้การทดสอบ JUnit ฉันแก้ไขสิ่งนี้โดยใส่คำอธิบายประกอบ @Test ไว้เหนือฟังก์ชันทดสอบหลัก


1

สิ่งที่แก้ไขกรณีของฉันก็คล้ายกับคำตอบของ @ JamesG: ฉันเริ่ม Eclipse ใหม่สร้างโครงการใหม่และรีเฟรช แต่ก่อนที่ฉันจะทำสิ่งใดสิ่งหนึ่งฉันได้ปิดโปรเจ็กต์ก่อน (คลิกขวาที่โปรเจ็กต์ในตัวสำรวจแพ็คเกจ -> ปิดโปรเจ็กต์) แล้วเปิดใหม่ จากนั้นก็ใช้งานได้

วิธีแก้ปัญหาที่ฉันพบก่อนที่จะพบโซลูชันขั้นสูงสุดที่ฉันเพิ่งอธิบาย: คัดลอกคลาสทดสอบและเรียกใช้คลาสทดสอบเป็น JUnit


1

ตรวจสอบว่าโฟลเดอร์ที่คุณทดสอบอยู่เป็นโฟลเดอร์ต้นทางหรือไม่ ถ้าไม่ - คลิกขวาและใช้เป็นโฟลเดอร์ต้นทาง



1

มีโอกาสอีกครั้งคุณอาจเปลี่ยน Junit Test จากเวอร์ชันต่ำกว่า (เช่น Junit 3) เป็น Junit 4 ให้ทำตามขั้นตอนด้านล่าง: -

1. Right Click on class
2. Select Run as >> "Run Configurations"
3. Check your "Test Runner" option in new window
4. If it not same as maven change it for example change it as Junit 4.

1

ฉันมีปัญหาเมื่อเร็ว ๆ นี้ซึ่งดูเหมือนจะได้รับการแก้ไขใน Eclipse ล่าสุด

eclipse-java 4.11.0,2019-03:R -> 4.12.0,2019-06:R


ใช่ ตรวจสอบสำหรับการอัพเดต!
Richard Jessop

1

เพิ่ม@Testการทดสอบของคุณ
เลื่อนเมาส์ไปที่คำอธิบายประกอบ
เลือก 'เพิ่มห้องสมุด junit 4 ใน classpath'


0

โครงการ Eclipse ของคุณเป็นไปตามหรือไม่? ในกรณีนี้คุณอาจต้องอัปเดตเวอร์ชัน m2eclipse

หมายเหตุสั้น ๆ : ฉันมีโปรเจ็กต์ใน Eclipse ซึ่งเป็นแบบ maven และสร้างขึ้นครั้งแรกโดยใช้วิซาร์ด "new maven project" ใน Eclipse ฉันใช้ JUnit 4.5 สำหรับการทดสอบหน่วยและสามารถเรียกใช้การทดสอบจากบรรทัดคำสั่งโดยใช้ maven ได้อย่างมีความสุขและการทดสอบแต่ละรายการจาก Eclipse โดยใช้ run as JUnit test .... อย่างไรก็ตามเมื่อฉันพยายามเรียกใช้การทดสอบทั้งหมด ในโปรเจ็กต์โดยเรียกใช้การรันเป็นการทดสอบ JUnit ... บนโหนดรูทโปรเจ็กต์ Eclipse บ่นว่า " ไม่พบการทดสอบกับนักวิ่งทดสอบ junit 4 " แก้ไขได้โดยการอัปเกรด m2eclipse เป็นเวอร์ชันการพัฒนาที่เสถียรล่าสุดจากไซต์อัพเดต m2eclipse (โดยเฉพาะฉันอัปเกรดจากเวอร์ชัน 0.9.8.200905041414 เป็นเวอร์ชัน 0.9.9.200907201116 ใน Eclipse Galileo)

จากที่นี่: http://nuin.blogspot.com/2009/07/m2eclipse-and-junit4-no-tests-found.html


ฉันไม่เข้าใจฉันไม่คิดว่ามันเกี่ยวข้องกับเวอร์ชัน eclispe การทดสอบของฉันใช้งานได้เมื่อวานนี้และไม่ใช่กรณีนี้เนื่องจากป๊อปอัปการเปิดตัวของ Junit มีวิธีตั้งค่าใหม่ให้เป็นค่าแรกของฉันหรือไม่
user281070

Lamisse ฉันก็สับสนเหมือนกัน ฉันขอแนะนำให้คุณอัปเดตคำถามของคุณเพื่ออธิบายว่าการทดสอบหน่วยทำงานเมื่อใดและไม่ได้ผล
b.roth

0

นี่ก็เกิดขึ้นกับฉันเหมือนกัน ฉันพบว่าใน Eclipse ฉันไม่ได้สร้างไฟล์ Java Class ใหม่นั่นคือสาเหตุที่มันไม่คอมไพล์ ลองคัดลอกโค้ดของคุณลงในไฟล์คลาส java หากยังไม่มีแล้วคอมไพล์


0

ฉันพบว่า Eclipse ดูเหมือนจะทำการทดสอบสไตล์ JUnit 3 เท่านั้นหากคลาสทดสอบของคุณขยายออกTestCaseไป หากคุณลบการสืบทอดคำอธิบายประกอบก็ใช้ได้สำหรับฉัน

ระวังว่าคุณต้องนำเข้าassert*วิธีการที่จำเป็นทั้งหมดแบบคงที่เช่นimport static org.junit.Assert.*.


0

ฉันต้องทำความสะอาด mvn บนบรรทัดคำสั่งจากนั้น project-> clean ใน eclipse ฉันเปลี่ยนชื่อชั้นเรียนก่อนแล้วจึงเปลี่ยนชื่อกลับ แต่ฉันสงสัยว่ามันช่วยได้


0

ฉันกำลังใช้ Eclipse ด้วย Maven (m2e 1.4) การทดสอบกำลังทำงานกับ Maven แต่ไม่ใช่กับ Eclipse ... แม้ว่าจะมีการใช้งานMaven>Update projectไฟล์.

วิธีแก้ปัญหาของฉันคือเพิ่มบางบรรทัดใน. classpath ที่สร้างโดย m2e ตอนนี้เส้นกำลังติด

<classpathentry kind="src" output="target/test-classes" path="src/test/java">
  <attributes>
    <attribute name="optional" value="true"/>
    <attribute name="maven.pomderived" value="true"/>
  </attributes>
</classpathentry>

0

ฉันมีปัญหานี้เป็นครั้งคราว สิ่งที่แก้ไขปัญหาได้มากที่สุดสำหรับฉันคือการเรียกใช้การทดสอบ JUnit จากการกำหนดค่าการเรียกใช้ ... เพื่อให้แน่ใจว่า JUnit 4 ถูกตั้งค่าเป็นตัวดำเนินการทดสอบ

โดยทั่วไปฉันพบปัญหานี้เมื่อพยายาม Run As ... Junit test จากเมนูบริบทบน Package Explorer หากคุณคลิกขวาที่รหัสสำหรับการทดสอบที่คุณกำลังพยายามเรียกใช้และแทนที่จะเลือก Run As ... Junit Test คุณเลือก Run configuration ... ให้แน่ใจว่า Project, Test Class และ test runner ได้รับการตั้งค่าอย่างถูกต้องจากนั้นคลิก Apply จากนั้นเรียกใช้ ทำงานตลอดเวลาสำหรับฉัน


0

ฉันเริ่มทำงานกับ Selenium และ Eclipse ในงานของฉันและฉันกำลังทำการทดสอบอัตโนมัติครั้งแรกและฉันได้ลบออกจากรหัส @Before, @Test และ @ หลังจากบันทึกและฉันพบปัญหานี้ "ไม่พบการทดสอบกับนักวิ่งทดสอบ junit4" .

วิธีแก้ปัญหาของฉันคือการเพิ่มบันทึก @Before, @Test และ @After อีกครั้งและสคริปต์ของฉันก็ใช้งานได้ เป็นสิ่งสำคัญที่จะต้องไม่ลบสิ่งนี้ออกจากรหัส

นี่คือการทดสอบง่ายๆที่ใช้ Google เพื่อค้นหาบางสิ่ง:

import java.util.regex.Pattern;
import java.util.concurrent.TimeUnit;

import org.junit.*;

import static org.junit.Assert.*;
import static org.hamcrest.CoreMatchers.*;

import org.openqa.selenium.*;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.openqa.selenium.support.ui.Select;

public class TestingClass {

    private WebDriver driver;
    //Creates an instance of the FirefoxDriver
    **@Before**
    public void SetUp() throws Exception {
        driver = new FirefoxDriver();
    }

    **@Test**   
    //Search using keyword through Google Search
    public void TestTestClass2 () throws Exception {
        driver.get("http://www.google.com.mx/");
        driver.findElement(By.name("q")).sendKeys("selenium");
        Thread.sleep(10000);
        driver.findElement(By.name("btnG")).click();
        Thread.sleep(10000);
    }

    //Kill all the WebDriver instances
    **@After**
    public void TearDown() throws Exception {
        driver.quit();
    }

}
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.