多个独立maven项目的通用测试数据

时间:2010-06-03 22:04:54

标签: unit-testing maven-2

我有一个maven项目,可以将特定格式的文本文件转换为另一种格式。 为了测试,我在src / test / resources中放入了大量的测试文件。

我还有另一个项目,它使用第一个进行转换,然后在输出格式上做一些额外的事情。我也想针对相同的测试数据集测试这个项目,但我不想拥有重复的数据集,我希望能够单独测试第一个项目,因为它也是一个独立的转换器项目。

这样做有什么共同的解决方案吗?我不介意项目源代码树中的没有测试数据集,只要每个项目可以独立于另一个项目访问数据集。我也不想为此设置数据库。我想的是比RDBMS更简单的测试数据存储库。我可以使用特定的maven插件来满足这种需求吗?易于设置和简单是我的首要任务。此外,我想的是打包测试数据并将其放入内部maven仓库,然后下载并在junit代码中解压缩。或者更好的是,有一个maven插件可以为我做这个吗?

有什么想法吗?

2 个答案:

答案 0 :(得分:5)

可以与Maven共享资源,例如在AssemblyDependency插件的帮助下。基本上是:

  1. 创建一个包含类型为pom的模块以保存共享资源
  2. 使用程序集插件将模块打包为zip
  3. 在“消费者”模块中声明对此zip的依赖
  4. 并使用dependency:unpack-dependencies(加上一些排除规则)来解压缩
  5. 这种方法详见How to share resources across projects in Maven。它需要一些设置(“提供”)并且不太复杂。

答案 1 :(得分:3)

将它们放在单独模块的src / main / resources目录中的树中,专门用于共享测试数据。它们将被添加到jar文件中,并且在我的nexus存储库,文件共享,〜/ .m2 /存储库或用于存储/分发maven工件的任何内容中进行了很好的压缩和版本化。

然后在项目中添加一个依赖项,你需要测试范围内的数据,并使用资源加载从jar中获取它们。

您不需要任何特殊插件或其他基础设施。这只是有效。