当前位置: 首页 > 知识库问答 >
问题:

在intellij idea中使用多个测试目录自动创建测试

壤驷麒
2023-03-14

在我的项目中,我决定将单元测试和集成测试拆分为单独的包,我的项目结构基本上如下所示:

├── main
│   ├── java
│   │   └── ...
│   └── resources
│       └── ...
├── test
│   └── java
│       └── ...
└── test-integration
    ├── java
    │   └── ...
    └── resources
        └── ...

轻松地分离两种测试是一个很好的选择,intellij重构与这个解决方案配合得很好。一切都被正确地设置了,两个test目录都被标记为test sources root,使用gradle的ide插件,gradle识别这两个源代码集,我创建了两个独立的任务来运行每个测试套件等等。我唯一的问题是intellij自动创建测试向导不能区分这两个目录,我唯一可以修改的是destination package类路径,这显然对两个测试目录都是相同的,并且没有选择要使用哪一个。

有什么方法可以配置IDEA来给我一个选项,在将要生成测试的目录之间进行选择吗?或者是某种将根据测试文件的后缀移动测试文件的gradle插件(例如,*test类转到test目录,*it类转到test-integration目录)?或者可能根本没有这样的选择:D

共有1个答案

胡夕
2023-03-14

没有这样做的选择。以下是该对话框的源代码。最终决定目录的是这个方法:

protected static List<VirtualFile> computeTestRoots(@NotNull Module mainModule) {
    if (!computeSuitableTestRootUrls(mainModule).isEmpty()) {
      //create test in the same module, if the test source folder doesn't exist yet it will be created
      return suitableTestSourceFolders(mainModule)
          .map(SourceFolder::getFile)
          .filter(Objects::nonNull)
          .collect(Collectors.toList());
}

IntelliJ的可扩展性很强。您可以相对容易地编写自己的插件来改变这种行为,方法是用自己的对话框替换与操作相关的对话框。您自己的对话框可能主要是已有内容的复制粘贴,但使用SelectTargetDirectory的不同实现。

 类似资料:
  • 我有一个Java项目,它在参考资料中有多个测试目录。 并且在实际的测试器中:

  • 我是一个使用V13的情报人员。 我有一个简单的java项目(默认)结构,如下所示: 现在,我想编写一个简单的测试,并将代码放在/src/test/java目录中。所以我决定更改我的项目格式,使其看起来像: 创建该结构后,我显然希望将src中的当前类移到main/java/com...结构。 如果我在根目录中创建了一个新目录,我可以选择将目录标记为测试源根目录,但它仍然挂在根目录上,如下所示: 有人

  • 问题内容: 我是使用v13的Intellij新手。 我有一个简单的java项目(默认)结构,如下所示: 现在,我想编写一个简单的测试,并将该代码放在/ src / test / java目录中。因此,我决定更改项目格式,使其看起来像: 创建该结构后,我显然想将src中的当前类移至main / java / com …结构。 我已经阅读了所有有关内容根源和项目结构的内容。该信息甚至指出:“可以将内容

  • 我的自动化测试有一些问题。我的EclipseIDE中大约有50个测试用例。所有测试用例都在不同的类中。另外,我还有一个基类,它包含@beforeclass和@afterclass。在@beforeclass中,浏览器打开,URL打开,网站URL打开,然后执行登录过程。然后我的测试用例工作。它们都以@Test注释开始。我使用TestNG套件将它们连接起来。基类:我的基类。java类MyBaseCla

  • 我有创建目录并向其中传输文件的代码。我想对它进行单元测试。但问题是,当我运行单元测试时,这些目录是创建的,但我不希望这样。我希望代码仅在运行生产环境时创建这些目录。我在google上搜索过这个,但所有的搜索结果都表明是JUnit类临时文件夹。但这不是我想要的。我没有在测试用例中创建目录。我只是在测试创建它们的代码。所以我不确定TemporaryFolder类如何帮助我实现这一点。假设我有如下代码

  • 英文原文:http://emberjs.com/guides/testing/test-runners/ 当运行测试时,可以在很多种不同的方案里选取最适合工作流的方案。找到一种摩擦最低的运行测试的方案非常重要,因为测试是一项经常要做的事情。 浏览器 运行测试的最简单的方法是直接在浏览器中打开页面。下面将展示如何加入一个qunit的测试harness给应用,并可以针对其运行测试: 首先,从这里获取一