【问题标题】:NetBeans Platform Application: How to create test environment for first automated end-to-end test through GUI?NetBeans 平台应用程序:如何通过 GUI 创建第一个自动化端到端测试的测试环境?
【发布时间】:2009-12-24 12:05:30
【问题描述】:

如何在 Java 上为 NetBeans 平台应用程序编写第一个端到端自动化测试(不仅仅是捕获和重放),假设运行应用程序并在单击主菜单 -> 文件 -> 退出菜单时进行测试item 会关闭它吗?

给定:安装 jdk1.6.0_17 和 apache-maven-2.2.1

然后:

mvn archetype:generate -DarchetypeGroupId=org.codehaus.mojo.archetypes -DarchetypeArtifactId=netbeans-platform-app-archetype -DarchetypeVersion=1.1 -DgroupId=stackoverflow.com -DartifactId=netbeans-app -Dversion=1.0-SNAPSHOT

然后:

mvn install
cd netbeans-app\application\target\foo\bin\
foo.exe 

并看到默认的 GUI 应用程序正在成功运行。

您会推荐哪种开源 GUI 测试框架来完成此任务? Abbot/Costello、Jelly/Jemmy、UISpec4J、Marathon、FEST-Swing 或 WindowLicker?

【问题讨论】:

    标签: java maven-2 netbeans tdd automated-tests


    【解决方案1】:

    我会说:

    Jemmy 可能已经退出了,因为它作为 Eclipse 插件效果最好。(不确定 Jelly)

    如果您有自定义组件,那么 Abbot/Costello 就出局了,我发现它对这些组件的反应出人意料。使用自定义组件,它就像一个魅力。

    如果从您的 Netbeans IDE 中运行测试对您来说非常重要,那么 Marathon 也将退出,因为您需要从命令行(当然也可以是它的独立应用程序)进行测试。不过,IMO,它对自定义组件有最好的支持。

    这真的离开了 FEST。 FEST 非常好地集成到从 Netbeans 运行中,因为它可以以与 JUnit 相同的方式运行,其测试结果会直接显示在 Netbean 的 IDE 的“测试结果”面板中。它带有一个非常简洁的插件,可以轻松设置 FEST 测试:Geertjan 的NetBeans plug-in for FEST-Swing。 FEST的主要缺点是它只是replay,没有记录,测试用例必须手动编写。

    几个月前,我个人不得不在为自动化测试框架选择测试工具时做出类似的决定——我选择了 Marathon,因为在我的目标应用程序中进行自定义组件测试至关重要。决策中还涉及其他因素:将其测试集成到持续集成系统中的能力,例如巡航控制;编程能力有限的测试人员将编写/记录测试脚本;在我们的案例中也很重要。

    出于您的目的,对于您的具体问题,FEST 似乎是目前已知信息最合乎逻辑的选择。

    但是,我建议您在每个测试工具上花一天时间,尝试将每个测试工具连接起来并记录优缺点。最后,您可能会发现自己的问题比我回答得更好,因为您可能会发现比您自己现在意识到的更多的需求 - 我知道我做到了!

    HTH


    免责声明:我没有使用 UISpec4J、Jelly 和 WindowLicker 的经验,所以我的回答可能不完整。


    编辑: 补充一点,FEST 可以在退出时测试应用程序。它最近解决了这个问题。 Marathon 不能做同样的事情 - 这会影响我对涉及测试应用程序关闭的测试用例的测试。
    据我所知,Abbot/Costello 也受到同样问题的影响(但我没有及时更新),而对于其他测试工具,我还没有尝试测试应用程序的退出。

    【讨论】:

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