使用JUnit开始使用Java进行测试

时间:2014-03-17 19:29:46

标签: java junit intellij-idea

我正在使用IntelliJ编写一些集成测试。

项目结构:

/src
  /main
    /java
      /com.myCompany
        /dir
          /email
  /test
    /com

随着时间的推移,我将编写单元,集成和性能测试。但是,我对如何构建我的目录进行测试感到困惑。我也不明白软件包命名与测试有何关系。例如,我创建了一个基本测试,如下所示:

package com.myCompany.dir.email;

import junit.framework.TestCase;
import org.junit.Test;

public class EmailTest extends TestCase {

    private final String username = “[testAccount]”;

    private final String password = “[testPassword]”;

    @Test
    public void thisAlwaysPasses() {
        assertTrue(true);
    }
}

不幸的是,我甚至无法运行该测试。我得到的错误包括:

Error running All unit tests: Package not found in directory

No tests found.

非常感谢任何见解。

2 个答案:

答案 0 :(得分:1)

让测试包镜像被测试类的包结构是个好主意。在具体情况下,它应该如下所示:

/src
  /main
    /java
      /com
        /myCompany
          /dir
            /email
              MyClass.java
  /test
    /java
      /com
        /myCompany
          /dir
            /email
              MyClassTest.java

关于单元,集成和性能测试的部分问题。我们通常遵循以下任一方法(它有点取决于项目规模):

  • 为Integration-Tests(和Per​​formance Tests)创建完全独立的项目。在那里,你将你的测试放在一个相同的包装层中。
  • 只需将Integration-Tests(和性能测试)放在与单元测试相同的包中,但为它们提供一些通用后缀(例如MyClassIntegrationTest.java)

答案 1 :(得分:0)

  1. 没有必要扩展TestCase - 你的其余代码可能没问题。
  2. 假设您正在使用Maven目录结构(看起来像是),请确保为测试创建了一个文件夹结构,如下所示:src / test / java / com / myCompany / dir / email - 您的类需要在与其包名匹配的文件夹中
  3. “[test”密码“]中的额外引用; - 您需要删除或转义它。
  4. 我猜测#1是您目前看到的异常的原因。