【问题标题】:how to to unit test a maven2 mojo plugin that validates files如何对验证文件的 maven2 mojo 插件进行单元测试
【发布时间】:2011-01-16 17:34:42
【问题描述】:

我创建了一个 maven2 Mojo,它检查某些文件类型以查找某些字符串的实例。它旨在用于在测试阶段报告这些文件是否有效。

当它找到这些不需要的字符串时,它会输出构建失败警报并使用 MojoFailureException 使 maven 构建失败。

我想在每次编译/安装这个 Mojo 时做一些集成测试。理想情况下,我想象一个场景,我有几个文件,其中包含应该使构建失败的字符串,然后测试 maven2 输出以断言这些文件失败。 在 maven2 mojo 中进行此类测试的最佳方法是什么?

谢谢

【问题讨论】:

    标签: maven-2 integration-testing mojo


    【解决方案1】:

    我会尝试将验证逻辑与文件 I/O 分开,然后在单元测试中使用模拟输入(理想情况下来自字符串,而不是文件)测试逻辑。大部分小规模测试都可以通过这种方式在实际单元测试中完成。

    除此之外,还应该进行集成测试,其中整个 mojo 都使用真实文件进行测试,例如:

    MyMojo mojo = new MyMojo();
    // set up input files in test directory
    // set up mojo properties if needed
    mojo.execute();
    // assert results
    

    【讨论】:

    • 这很好。这些方法已经单独编写,所以我应该能够在 JUnit 中模拟一些字符串以发送到每个字符串并测试响应。但是我将如何对文件进行集成测试以检查它是否端到端工作?
    • 提示:将要完成的实际工作与 Mojo 分开。仅使用 Maven-2 Mojo 通过 Maven-2 插件设置提取所需的设置。创建第二个类,它完成真正的工作,给它一个或多个带有所需参数的 execute(...) 方法(使用 DbC 进行参数验证)。然后从 Mojo execute() 调用第二个类,它的 execute(...) 方法。这样测试实现变得非常容易。另一个优点是,可以在不同的场景(小实用程序、ant-extentsion、eclipse-plugin 等)中轻松使用该实现
    • 如何获得 MaveProject 实例?
    猜你喜欢
    • 1970-01-01
    • 2023-03-12
    • 2016-08-24
    • 2014-02-23
    • 2011-07-27
    • 2012-10-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多