【问题标题】:How to test Apache Nutch plugin via some use cases如何通过一些用例测试 Apache Nutch 插件
【发布时间】:2023-04-10 04:16:01
【问题描述】:

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

【问题讨论】:

    标签: java unit-testing plugins nutch


    【解决方案1】:

    所以你写了一个IndexingFilter 插件对吗?我通常的建议是查看一个与您编写的插件“相似”的插件,例如让我们使用index-anchor 插件并检查该插件的测试是如何编写的,看看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)。

    一般的想法是实例化您刚刚编写的过滤器,为其提供一些假数据并断言过滤器的执行结果。尽管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,这个插件是为 1.x 版本的 Nutch 实现的,但它可以帮助你更详细地了解我所说的内容。

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多