Gradle groovy插件的测试没有获得测试资源

时间:2014-08-27 13:00:26

标签: unit-testing gradle classpath

可能是一个愚蠢的问题。

我正在为我的gradle插件编写单元测试。我了解gradle自定义插件默认应用了groovy插件,因此默认情况下会将plugin/src/test/resources包含为我的测试资源。

事实:

  • 测试类位置:plugin / src / test / groovy / foo / bar / Test.groovy
  • 测试资源位置:plugin / src / test / resources / foo / bar / myfile

我试图通过

从Test.groovy访问 myfile
new File(this.class.getResource(".").toURI())

调试上面的代码时,解析为此目录, myfile 不在此处。

  • 插件/建造/类/测试/富/酒吧

myfile 可以在

找到
  • 插件/建造/资源/测试/富/酒吧/的 MYFILE

问题:如何从Test.groovy访问 myfile ?这是groovy插件的标准行为吗?

更新

我想在原始用例中得到的是该目录,因为我有多个资源(在这个SO问题的翻译中丢失了它)。当我像Peter所说的那样指定myfile时,似乎资源得到了正确解析。所以:

  • new File(this.class.getResource("。")。toURI()) - >插件/建造/的 /测试/富/酒吧
  • new File(this.class.getResource(" myfile")。toURI()) - >插件/建造/的资源 /测试/富/酒吧/的 MYFILE

我在使用显式资源名称修复它之前采用了这个hack:https://code.google.com/p/android/issues/detail?id=64887#c13

1 个答案:

答案 0 :(得分:0)

而不是.,请使用myfile。如果这没有帮助,请尝试getClass().classLoader.getResource("foo/bar/myfile")