2016-08-16 97 views
1

我已经使用这个site的一些指南在java中为Nutch 2.3.1写了一个简单的插件。现在我必须对它进行测试,以确保它在将它集成到Nutch之前正常工作。如果我只是通过java命令运行,那么它的类没有找到错误。我如何测试我的插件。如何通过一些使用案例测试Apache Nutch插件

回答

2

所以你写了一个IndexingFilter插件对不对?我通常的建议是看看插件莫名其妙地“相似”你写的一个,比如让我们的​​插件和结帐这个插件的测试如何写,看看https://github.com/apache/nutch/blob/2.x/src/plugin/index-anchor/src/test/org/apache/nutch/indexer/anchor/TestAnchorIndexingFilter.java。如果您的插件从配置中读取了一些值(配置选项,文件路径等),您应该仔细查看36-39行(https://github.com/apache/nutch/blob/2.x/src/plugin/index-anchor/src/test/org/apache/nutch/indexer/anchor/TestAnchorIndexingFilter.java#L36-L39)。

总体思路ES实例,你刚刚编写的过滤器,给它一些假数据,并断言在过滤器的执行结果。尽管关于https://wiki.apache.org/nutch/WritingPluginExample-0.9的信息仅针对Nutch的1.x分支,但其中包含的一般准则可以帮助您达到目标。

一些插件也实现了main()方法允许直接使用bin/nutch脚本从终端调用,当你想无需运行抓取用户“玩” /测试的配置值,这是有帮助的。一旦你实现了main()方法,你可以使用bin/nutch plugin <plugin name> <plugin class> [some additional parameters]命令来调用你的插件。请记住,该插件必须在conf/nutch-site.xml文件中激活。看看https://github.com/apache/nutch/blob/a3e7420494304bc4de7ee1a0b25a5158108856f5/src/plugin/urlfilter-regex/src/java/org/apache/nutch/urlfilter/regex/RegexURLFilter.java,这个插件是为Nutch的1.x版本实现的,但它可以帮助你更详细地看到我所谈论的内容。

有了这个,你1)测试在一个孤立的环境中您的实现; 2)为用户提供了一个测试环境/如果你比如你的插件有许多不同的选择一个额外的配置文件。而我的最后建议:总是在部署之前执行的Nutch的整个测试套件,并运行一个小的测试爬行,以确保一切正常。