Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/326.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用JUnit开始Java测试_Java_Junit_Intellij Idea - Fatal编程技术网

使用JUnit开始Java测试

使用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

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

项目结构: 随着时间的推移,我将编写单元、集成和性能测试。然而,我对如何构建测试目录感到困惑。我也不理解包命名与测试之间的关系。例如,我创建了一个基本测试,如下所示:

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

非常感谢您的任何见解

  • 不需要扩展TestCase——代码的其余部分可能还可以
  • 假设您使用的是Maven目录结构(看起来是),请确保为测试创建了一个文件夹结构,如下所示:src/test/java/com/myCompany/dir/email——您的类需要位于与其包名匹配的文件夹中
  • “[test”Password”];”中的额外引号——您需要删除或转义它

  • 我猜#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