![](/img/trans.png)
[英]junit.framework.AssertionFailedError: No tests found in org.example.AppTest
[英]Selenium junit.framework.AssertionFailedError:No Tests Found
我正在尝试运行一个简单的硒示例来入门,但是遇到了麻烦。 我之前已经编写了JUnit测试用例,它们可以正常工作,但这是我的代码和错误。
package alltests;
import testsuites.SeleniumTestTutorial;
import junit.framework.Test;
import junit.framework.TestSuite;
public class AllTests {
public static Test suite() {
TestSuite suite = new TestSuite("Test for SeleniumTutorial");
suite.addTestSuite(SeleniumTestTutorial.class);
return suite;
}
}
这是我正在使用的旧教程。 我没有编写这些测试,它们很可能会失败,我只是想让它们运行。
package testsuites;
import junit.framework.TestCase;
import org.junit.AfterClass;
import org.junit.BeforeClass;
import org.junit.Test;
import com.thoughtworks.selenium.DefaultSelenium;
import com.thoughtworks.selenium.Selenium;
public class SeleniumTestTutorial extends TestCase{
private static Selenium browser;
@BeforeClass
public static void init() {
browser = new DefaultSelenium("localhost", 4444, "*firefox",
"http://new.music.yahoo.com/");
browser.start();
}
@Test
public void isVideosHpLoaded() {
browser.open("http://new.music.yahoo.com/");
browser.click("//*[@id=\"YMusic_HeaderNavItemMenu2\"]/a/span");
browser.waitForPageToLoad("5000");
System.out.println("checking title " + browser.getTitle());
assertEquals("Music Videos on Yahoo! Music", browser.getTitle());
}
@Test
public void isTop100VideosModuleLoaded() {
Number numElements = browser
.getXpathCount("//*[@id=\"ymMvHpTopVideos\"]/div/div/h2/a");
String modHeaderText = browser
.getText("//*[@id=\"ymMvHpTopVideos\"]/div/div/h2/a");
assertEquals(1, numElements.intValue());
assertEquals("Top 100 Videos", modHeaderText);
}
@Test
public void isVideoStationsModuleLoaded() {
Number numElements = browser
.getXpathCount("//*[@id=\"ymMvHpVideoStationsContentContainer\"]/div/div[2]/h2/a");
String modHeaderText = browser
.getText("//*[@id=\"ymMvHpVideoStationsContentContainer\"]/div/div[2]/h2/a");
assertEquals(1, numElements.intValue());
assertEquals("Video Stations", modHeaderText);
}
@Test
public void countTotalVideoRecs() {
Number numElements = browser
.getXpathCount("//*[@id=\"ymusicRecommendHp\"]//ul[@class=\"ymusic_thumbnailList\"]/li");
assertEquals(6, numElements.intValue());
}
@AfterClass
public static void cleanup() {
browser.stop();
}
}
这是我遇到的错误。 我已经在其他JUnit测试中使用了这种格式,但是我从未遇到任何问题。 我似乎也找不到使用JUnit和Selenium的更新教程。 如果有人有任何良好的联系,我将不会反对。 提前致谢!
junit.framework.AssertionFailedError: No tests found in testsuites.SeleniumTestTutorial
at junit.framework.Assert.fail(Assert.java:47)
at junit.framework.TestSuite$1.runTest(TestSuite.java:97)
at junit.framework.TestCase.runBare(TestCase.java:134)
at junit.framework.TestResult$1.protect(TestResult.java:110)
at junit.framework.TestResult.runProtected(TestResult.java:128)
at junit.framework.TestResult.run(TestResult.java:113)
at junit.framework.TestCase.run(TestCase.java:124)
at junit.framework.TestSuite.runTest(TestSuite.java:243)
at junit.framework.TestSuite.run(TestSuite.java:238)
at junit.framework.TestSuite.runTest(TestSuite.java:243)
at junit.framework.TestSuite.run(TestSuite.java:238)
at org.junit.internal.runners.JUnit38ClassRunner.run(JUnit38ClassRunner.java:83)
at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:50)
at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:467)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:683)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:390)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:197)
我认为这是因为您要混合使用JUnit 3和JUnit 4样式测试。
如果您使用的是JUnit 3.x,则需要扩展TestCase,但随后需要将所有测试方法都命名为“ testXYZ”(即以单词test开头)。 @Test批注将被忽略。
对于JUnit 4,您无需扩展TestCase,而是使用批注。
您正在混合使用JUnit 3测试套件和JUnit 4测试类。 您需要创建一个JUnit 4测试套件:
import org.junit.runner.RunWith;
import org.junit.runners.Suite;
@RunWith(Suite.class)
@Suite.SuiteClasses({
SeleniumTestTutorial.class
})
public class AllTests {
}
当执行TestSuite
(JUnit 3)时,它将搜索以'test'开头的方法。 对于JUnit 4套件(带有@RunWith(Suite.class)
),它将搜索带有@Test批注的方法。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.