4

我在让这个测试用例工作时遇到问题。谁能指出我正确的方向?我知道我做错了什么,我只是不知道是什么。

import org.junit.*;
import com.thoughtworks.selenium.*;
import org.openqa.selenium.server.*;

@SuppressWarnings("deprecation")

public class register extends SeleneseTestCase {

  Selenium selenium;
  private SeleniumServer seleniumServer;
  public static final String MAX_WAIT = "60000";
  public final String CRN = "12761";

  public void setUp() throws Exception {
    RemoteControlConfiguration rc = new RemoteControlConfiguration();
    rc.setAvoidProxy(true);
    rc.setSingleWindow(true);
    rc.setReuseBrowserSessions(true);

    seleniumServer = new SeleniumServer(rc);
    selenium = new DefaultSelenium("localhost", 4444, "*firefox", "http://google.com/");
    seleniumServer.start();
    selenium.start();
  }

  @Test
  public void register_test() throws Exception {
    //TESTS IN HERE
  }

  @After
  public void tearDown() throws Exception {
    selenium.stop();
    // Thread.sleep(500000);
  }
}

我收到以下错误:

junit.framework.AssertionFailedError: No tests found in register
at jumnit.framework.TestSuite$1.runTest(TestSuite.java:97)

我难住了。

4

4 回答 4

30

您不能既扩展 TestCase(或 SeleniumTestCase)又使用 JUnit 注释(@Test)。JUnit3 和 4 的测试运行器不同,我的假设是当 JUnit 看到您扩展了 TestCase 时,它​​会使用旧运行器。

删除 @Test 注释,而是按照旧的约定命名你的测试,并以“test”为前缀,这样就可以解决它。

public void testRegister() throws Exception {
  //TESTS IN HERE
}

PS。我建议遵循更标准的 Java 命名约定,例如驼峰式大小写。

聚苯乙烯。这是一个更详细地解释这一点的链接。

于 2012-04-10T22:15:52.477 回答
3

这意味着您没有在当前运行的以下测试用例类中创建以 test 开头的方法名称

于 2014-06-11T14:53:44.370 回答
1

<junit>在我的案例中,我能够通过指向 1.7 或更高版本的 Ant来解决这个错误——即使用 Ant 任务运行测试。Ant 1.7+ 尊重嵌套<classpath>元素,我在其中指向一个 JUnit 4.x jar,正如 CodeSpelunker 指出的那样,它理解 @Test 注释。 http://ant.apache.org/faq.html#delegating-classloader为我提供了一个惊喜时刻。

于 2014-01-23T19:57:15.707 回答
1

mockk在 Kotlin for Android 中使用,我遇到了这个错误。

我的班级是这样声明的(由 Android Studio 自动生成):

class MyClassTest : TestCase() {

但删除 TestCase 修复了错误

class MyClassTest {
于 2021-04-07T12:27:12.057 回答