我编写了一个单元测试,将文件写入文件系统,没有给出写入工作目录的路径;因此,如果从项目目录执行,它会写入项目根目录,如果在项目父目录中,它会写入父根目录。
那么写入目标目录的正确方式是什么呢?很可能是目标目录中的一个目录?
如果我非常简单地指定 target/
文件,它将写入父项目目标而不是项目目标。
更新:我实际上想要测试完成后的文件。该文件为第三方提取格式,需要发送给第三方。可以打开/关闭测试,以允许我仅在文件格式更改以重新批准时运行。文件去哪里不是一个大问题,但我想要一些容易找到的东西。
原文由 Brett Ryan 发布,翻译遵循 CC BY-SA 4.0 许可协议
您可以尝试按照 此处 所述使用 TemporaryFolder JUnit @Rule
问题更新后
您可以更改
maven-surefire-plugin
使用的工作目录。您可以将该工作目录更改为测试所需的任何内容,例如
${project.build.directory}/my_special_dir/
。surefire 插件中的工作目录仅影响正在运行的测试,并且仅适用于由 maven 进行的测试。如果您从 IDE 中运行测试,工作目录将是另外一个目录。