我正在使用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.
让您的测试包反映被测试类的包结构是一个好主意。在您的具体示例中,它应该是这样的:
<>之前/src/主要/java/com/myCompany/目录/电子邮件MyClass.java/测试/java/com/myCompany/目录/电子邮件MyClassTest.java之前关于你那部分关于单元、集成和性能测试的问题。我们通常采用以下方法中的一种(这取决于项目的大小):
- 为集成测试(和性能测试)创建完全独立的项目。在这里,您可以将测试置于相同的包层次结构中。
- 简单地将集成测试(和性能测试)与单元测试放在同一个包中,但是给它们一些共同的后缀(例如MyClassIntegrationTest.java)
- 没有必要扩展TestCase——剩下的代码可能很好。
- 假设你正在使用Maven目录结构(你似乎是),确保你为测试创建了一个文件夹结构,看起来像:src/test/java/com/mycompany/dir/email-你的类需要在一个文件夹中匹配它的包名,
- 在"[test"Password"]"中添加额外的引号;——你需要删除或转义它。
我猜#1是你现在看到的异常的原因。