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

使用多个测试目录Java/Maven

冯星剑
2023-03-14

我有一个Java项目,它在参考资料中有多个测试目录。

\target\test-classes
                   |___conf
                   |      |_ items...
                   |___otherdata
                          |_ items...
File targetClassesDir = new File(getClass().getProtectionDomain().getCodeSource().getLocation().getPath());
File targetDir = targetClassesDir.getParentFile();
getClass().getResource("test-classes").getPath()
tuple4TestsuiteContainer.add(new HeaderBodyPayloadTestcase(
                                    "conf\\" + xqueries[0],
                                    getClass().getResource("/").getPath(),
                                    "xquery-testdata\\" + file.substring(file.lastIndexOf(File.separatorChar) + 1),
                                    "xquery-testdata\\" +expectedFiles[0].substring(expectedFiles[0].lastIndexOf(File.separatorChar) + 1)
                            ));

并且在实际的测试器中:

String xqueryFileContent = readFile(testDataBasePath + xQueryUnderTestPath, encoding);

共有1个答案

欧阳德运
2023-03-14

我也不确定您的用例和项目设置(Maven?),但在我看来,您根本不应该显式访问目标/测试类中的任何文件,并使用ClassLoader从资源文件夹加载资源。

如何获取JUnit中src/test/resources目录的路径?

 类似资料:
  • 在我的项目中,我决定将单元测试和集成测试拆分为单独的包,我的项目结构基本上如下所示: 轻松地分离两种测试是一个很好的选择,intellij重构与这个解决方案配合得很好。一切都被正确地设置了,两个目录都被标记为,使用gradle的插件,gradle识别这两个源代码集,我创建了两个独立的任务来运行每个测试套件等等。我唯一的问题是intellij自动创建测试向导不能区分这两个目录,我唯一可以修改的是类路

  • 我有3个maven项目。项目1,项目2 为此,我在项目2 pom.xml文件中添加了这个 我的pom。Project3的xml是- 在项目3中,我添加了testng。xml文件来运行测试。现在如果我运行这个测试。xml文件,那么我所有的测试用例都成功运行了。如果我尝试使用maven测试运行测试用例,那么它会失败。 我已经在下面的pom文件中包含了testng.xml文件,以便使用maven运行te

  • 问题内容: 在为Java代码构建一套单元测试时,是否有关于将测试代码与源代码放置在何处的约定? 例如,如果我有一个包含一堆源文件的目录,那么最好将测试用例本身放在其中或使用类似的内容。 如果首选后者,那么在包之外无法使用类的 / 成员时,如何测试代码的内部? 问题答案: 您可以将测试与原始类放在同一包中,即使源代码位于其自己的目录根目录下: 您可以在下声明一个类,并在下声明其测试。 至于访问私有成

  • 但是,我只想运行以一些字符串开始的文件。假设前缀为“AsiaUserTests”的文件。类似下面的内容 这将导致,所以我想知道是否有一种方法可以做到这一点,因为我在Web中找不到这样的东西。

  • 问题内容: 有什么方法可以在一个命令中复制多个目录以减少层数?例如,代替: 我想要做: 但是,这会复制目录的 内容 …但是我想复制 目录本身 。 问题答案: 这是copy命令的记录行为: 如果是目录,则将复制目录的整个内容,包括文件系统元数据。 注意:目录本身不会被复制,只是其内容被复制。 我建议的最佳解决方法是更改​​构建文件夹中的目录布局,将三个文件夹移动到一个父文件夹下,然后添加父文件夹。

  • 问题内容: 在Maven的资源插件: 此目标要求您配置要复制的资源,并指定outputDirectory。 使用maven 将内的两个(或多个)外部资源目录复制到构建输出目录(请参阅和)。 例如,给定上面复制的目录结构,并使用maven到目标目录。复制一个或另一个很容易,但是,该插件仅接受一个outputDirectory。如果将目录和两个目录都指定为资源,则每个目录的内容将被复制到目录,而不是目