Selenium - запускаете набор тестов? - PullRequest
2 голосов
/ 29 июля 2011

Я использую тестовый набор HTML как таковой:

java -jar /var/lib/selenium/selenium-server.jar -browserSessionReuse -htmlSuite *firefox http://$HOST ./test/selenium/html/TestSuite.html ./target/selenium/html/TestSuiteResults.html

Есть ли способ запустить все наборы тестов в каталоге или создать набор тестов?

Ответы [ 3 ]

0 голосов
/ 06 августа 2011

Я создал скрипт Grails для автоматического создания супер-тестового пакета. Необходимость изменить наборы тестов - это еще один шаг в добавлении теста, и каждый уровень барьера увеличивает вероятность того, что разработчики откажутся писать тесты.

import groovy.io.FileType

includeTargets << grailsScript("Init")

target(main: "Auto-generates the TestSuite.html file needed for selenium based on selenium html tests in test/selenium/html/**") {
    File testSuiteOutputFile = new File("test/selenium/html/TestSuite.html")
    testSuiteOutputFile.delete()

    String testRows = buildTestRows()
    testSuiteOutputFile << 
"""
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
  <meta content="text/html; charset=UTF-8" http-equiv="content-type" />
  <title>Test Suite</title>
</head>
<body>
<table id="suiteTable" cellpadding="1" cellspacing="1" border="1" class="selenium"><tbody>
<tr><td><b>Test Suite</b></td></tr>
$testRows
</tbody></table>
</body>
</html>
"""


}

private def buildTestRows() {
    String testRows = ""
    List<File> testFiles = getAllTestFilesInSeleniumDirectory()
    testFiles.each { file ->
        def relativePath = buildFilePathRelativeToTestSuite(file)
        println "Adding $relativePath to TestSuite"
        testRows += "<tr><td><a href='${relativePath}'>${file.name}</a></td></tr>"
        testRows += "<tr><td><a href='clearCache.html'>Clear Cache</a></td></tr>"
    }
    testRows
}

private List<File> getAllTestFilesInSeleniumDirectory() {
    File testsDirectory = new File("test/selenium/html")
    def files = []
    testsDirectory.eachFileRecurse(FileType.FILES) { files << it }
    files
}

private String buildFilePathRelativeToTestSuite(File file){
    File parentDirectory = new File("test/selenium/html")

    String relativePath = file.name
    file = file.parentFile
    while( file != parentDirectory ){
        relativePath = file.name + "/" + relativePath;
        file = file.parentFile
    }
    relativePath
}

setDefaultTarget(main)
0 голосов
/ 20 августа 2011

Посмотрите на Селунит .Он предоставляет плагин Maven для выполнения пакетов Selenese в пакетном режиме и преобразования отчетов в формат Junit.Последнее очень полезно для интеграции выполнения теста в CI-сервер, такой как Jenkins, который генерирует хорошие графики и уведомляет в случае ошибок теста.

0 голосов
/ 05 августа 2011

Я очень новичок в Selenium и действительно только Selenium2.Я использую «TestNG» в качестве своей тестовой среды, и она поддерживает наборы и наборы наборов, используя файл xml, в котором указывается, какие тесты, содержащие конкретную аннотацию, являются частью набора.

Если выполняются наборы наборовэто то, что вы ищете, и вы используете исключительно Java (TestNG, насколько я понимаю, не поддерживает ничего, кроме Java), тогда вы можете найти то, что ищете.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...