如何通过一些用例测试Apache Nutch插件

时间:2016-08-16 07:03:30

标签: java unit-testing plugins nutch

我使用本site中的一些指南为Nutch 2.3.1编写了一个简单的Java插件。现在我必须对它进行测试,以便在将其集成到Nutch之前确定它正常工作。如果我只是通过java命令运行,那么它会给类找不到错误。我该如何测试我的插件。

1 个答案:

答案 0 :(得分:2)

所以你写了一个IndexingFilter插件吗?我通常的建议是看一个插件与你编写的插件“相似”,例如让我们使用index-anchor插件并检查这个插件的测试是如何编写的,看看{{3 }}。如果您的插件从配置中读取了一些值(配置选项,文件路径等),您应该仔细查看36-39行(https://github.com/apache/nutch/blob/2.x/src/plugin/index-anchor/src/test/org/apache/nutch/indexer/anchor/TestAnchorIndexingFilter.java)。

一般的想法是实例化你刚写的过滤器,给它提供一些假数据并断言过滤器的执行结果。虽然https://github.com/apache/nutch/blob/2.x/src/plugin/index-anchor/src/test/org/apache/nutch/indexer/anchor/TestAnchorIndexingFilter.java#L36-L39上的信息特定于Nutch的1.x分支,但它包含可帮助您实现目标的一般准则。

某些插件还实现了允许直接从终端使用main()脚本调用的bin/nutch方法,这在您希望用户“播放”/测试配置值时非常有用需要运行爬网。实现main()方法后,可以使用bin/nutch plugin <plugin name> <plugin class> [some additional parameters]命令调用插件。请记住,必须在conf/nutch-site.xml文件中激活插件。看看https://wiki.apache.org/nutch/WritingPluginExample-0.9,这个插件是针对Nutch的1.x版本实现的,但它可以帮助您更详细地了解我所谈论的内容。

有了这个你1)在隔离环境中测试你的实现,2)为用户/你提供一个测试环境,例如你的插件有一个包含许多不同选项的附加配置文件。我最后的建议是:在部署之前总是执行Nutch的整个测试套件并运行一个小的测试爬行以确保一切正常。