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

How to test Apache Nutch plugin via some use cases

我在 java 中使用此 site 中的一些指南为 Nutch 2.3.1 编写了一个简单的插件。现在我必须对其进行测试,以确保在将其集成到 Nutch 之前它可以正常工作。如果我只是通过 java 命令 运行 然后它会给出 类 not found 错误。如何测试我的插件。

所以你写了一个 IndexingFilter 插件对吧?我通常的建议是以某种方式 "similar" 看看你写的插件,例如让我们看看 index-anchor 插件并检查这个插件的测试是如何编写的,看看 https://github.com/apache/nutch/blob/2.x/src/plugin/index-anchor/src/test/org/apache/nutch/indexer/anchor/TestAnchorIndexingFilter.java. If your plugin read some values from the configuration (a configuration option a path to a file, etc.) you should take a good look at the 36-39 lines (https://github.com/apache/nutch/blob/2.x/src/plugin/index-anchor/src/test/org/apache/nutch/indexer/anchor/TestAnchorIndexingFilter.java#L36-L39).

总体思路是实例化您刚刚编写的过滤器,为其提供一些假数据并对过滤器的执行结果进行断言。虽然 https://wiki.apache.org/nutch/WritingPluginExample-0.9 上的信息特定于 Nutch 的 1.x 分支,但它包含可以帮助您到达那里的一般指南。

一些插件还实现了 main() 方法,允许直接从终端使用 bin/nutch 脚本调用,这在您希望用户 "play"/测试配置值而无需 运行 抓取。实现 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,这个插件是为 1.x 版本的 Nutch 实现的,但它可以帮助您更详细地了解我所说的内容。

有了这个,您 1) 在隔离环境中测试您的实现,以及 2) 为 user/you 提供一个测试环境,例如,如果您的插件有一个包含许多不同选项的附加配置文件。我的最终建议:始终在部署之前执行 Nutch 的整个测试套件,并 运行 进行一次小型测试爬网以确保一切正常。