如何通过控制台对UI进行单元测试

时间:2013-02-28 20:23:17

标签: unit-testing browser user-interface web

我知道这已被多次询问,但我想要具体。 我用硒。谷歌搜索后看起来我可以通过控制台运行它,它给了我一堆文本输出,但我宁愿不解析它,我想要一个通过/失败类型的东西

每隔一段时间我就想在UI上运行我的所有单元测试而不是代码。我不想提交具有特定值的表单,我想看看我是否单击此img会弹出它旁边的Dropbox,如果我选择一个名称,它将以我将在运行之后提交的形式其他一些事情。

我喜欢这个的原因是某些功能必须始终有效,所以每次修改这些功能的UI时我都可以调整单元测试。对于其余部分,检查业务逻辑的代码中的单元测试将足够,因为这些UI总是在变化或不是非常重要。

如果有什么东西可以启动firefox和chrome(或webkit),那就太好了,但这不是必需的。

就像我说的那样,我想要传递/失败,需要解析一些简单的文本。复杂的测试是可以的,因为我知道正则表达式,但我不想弄清楚一个单元测试何时结束或开始。

1 个答案:

答案 0 :(得分:1)

如果你正在使用java / maven - 我为selenium编写了一个maven插件,可以做你想要的:

https://github.com/willwarren/selenium-maven-plugin。您在firefox + selenium中生成测试,然后将文件保存到maven项目中的目录。

如果您不使用maven,可以使用我构建的项目:

http://code.google.com/p/selenium4j

来自自述文件:

我们使用selenium IDE来记录我们的测试。然后我们以下列方式将测试用例保存到我们的项目中:(注意:目前selenium4j中的代码仅支持一个级别,因此不要嵌套文件夹)

./src/test/selenium
    |-signin
        |-LoginGoodPassword.html
        |-LoginBadPassword.html
        |-selenium4j.properties

我们没有保存测试套件,因为maven负责找到您的测试。

selenium4j.properties包含有关以下内容的设置信息:

# the web site being tested
webSite=http://yourwebapp:8080

# A comma separated values of the WebDrivers being used. Accepted drivers: 
# HtmlUnitDriver, FirefoxDriver, ChromeDriver, InternetExplorerDriver
driver=FirefoxDriver

# How many times we want to iterate and test
loopCount=1

selenium maven插件绑定到process-test-resources阶段,然后将这些html文件转换为src / test / java文件夹中的junit 4测试。

所以你最终得到:

./src/test/java
    |-signin
        |-firefox
            |-LoginGoodPasswordTest.java
            |-LoginBadPasswordTest.java