我想用pigunit和maven。在maven中,我的pig脚本位于模块的根目录下 <module>/src/main/pig/<scriptName>.pig
所有的pigunit测试教程要么编写pig脚本的绝对url(当构建运行在我的机器之外的任何地方时,这显然不起作用),要么编写相对路径,它只是“神奇地”工作。但是当我直接输入脚本名或者 src/main/pig/<scriptName>.pig
要进行pigtest,在运行mvn测试时找不到脚本。
使用测线测试(使用scala+scalatest):
val pigTest = new PigTest("src/main/pig/calcProductVectors.pig", args)
结果:
- Script does something***FAILED***
java.io.FileNotFoundException: src/main/pig/calcProductVectors.pig (No such file or directory)
at java.io.FileInputStream.open0(Native Method)
at java.io.FileInputStream.open(FileInputStream.java:195)
at java.io.FileInputStream.<init>(FileInputStream.java:138)
at org.apache.pig.pigunit.PigTest.readFile(PigTest.java:296)
at org.apache.pig.pigunit.PigTest.readFile(PigTest.java:292)
我怎么才能得到 src/main/pig
在mvn测试运行时是否在路径上?
1条答案
按热度按时间anauzrmj1#
好的,我在java项目中发现了一些测试,它们刚刚将pig目录添加到maven中的project.build.testresources中:
然后junit测试就会通过
src/main/pig/<scriptName>.pig
测试。这在我的项目中不起作用,不确定是因为scalatest还是其他原因。我可以看到目录的内容被复制到
<module>/target/test-classes
,但是仍然没有找到它们的直接名称(这似乎更有意义,因为它们是在没有src/main/pig部分的情况下复制的)或者整个为java项目工作的路径。最终从这个答案中,我找到了文件系统上运行测试的位置,它只是模块名,所以我像这样调整了路径,结果成功了: