使用JUnit开始Java测试
我正在使用IntelliJ编写一些集成测试 项目结构: 随着时间的推移,我将编写单元、集成和性能测试。然而,我对如何构建测试目录感到困惑。我也不理解包命名与测试之间的关系。例如,我创建了一个基本测试,如下所示:使用JUnit开始Java测试,java,junit,intellij-idea,Java,Junit,Intellij Idea,我正在使用IntelliJ编写一些集成测试 项目结构: 随着时间的推移,我将编写单元、集成和性能测试。然而,我对如何构建测试目录感到困惑。我也不理解包命名与测试之间的关系。例如,我创建了一个基本测试,如下所示: package com.myCompany.dir.email; import junit.framework.TestCase; import org.junit.Test; public class EmailTest extends TestCase { privat
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
到
非常感谢您的任何见解
我猜#1是您当前看到的异常的原因。让您的测试包反映被测试类的包结构是一个好主意。在您的具体案例中,它应该如下所示: /src /main /java /com /myCompany /dir /email MyClass.java /test /java /com /myCompany /dir /email MyClassTest.java /src /主要 /爪哇 /com /我的公司 /迪尔 /电子邮件 MyClass.java /试验 /爪哇 /com /我的公司 /迪尔 /电子邮件 MyClassTest.java 关于单元测试、集成测试和性能测试,我们通常采用以下方法之一(取决于项目规模):
- 为集成测试(和性能测试)创建完全独立的项目。在其中,您将测试放在相同的包层次结构中
- 只需将集成测试(和性能测试)与单元测试放在同一个包中,但给它们一些通用后缀(例如MyClassIntegrationTest.java)
test/**java**/com
,而不仅仅是test/com
您通常希望您的测试层次结构与主层次结构具有相同的结构,因此test/java/com/mycompany。我有点理解。但是,如果我希望在不同的文件中进行单元、集成和性能测试,该怎么办?您的源代码真的有smartquotes l吗也就是说,目录名实际上是com.myCompany
?我们对测试类型进行不同的命名(*test,*IntegrationTest),并将它们保存在同一目录树中。性能测试有自己的项目。不过,这主要取决于构建脚本设计器,部分取决于测试的运行方式和运行者。。
No tests found.
/src
/main
/java
/com
/myCompany
/dir
/email
MyClass.java
/test
/java
/com
/myCompany
/dir
/email
MyClassTest.java