Igo*_*nov 3 java grails groovy integration-testing
我正在尝试使用进行http请求的集成测试来测试我的grails应用程序.实际上它是硒/碲测试,但没关系.但正如我所看到的,当我运行grails测试时,它不会启动Web容器,同时我在博客文章中看到很多例子,人们使用selenium和其他需要http访问的测试工具来测试grails app.
我创建了一个空的grails应用程序:
mvn org.apache.maven.plugins:maven-archetype-plugin:2.0-alpha-4:generate -DarchetypeGroupId=org.grails -DarchetypeArtifactId=grails-maven-archetype -DarchetypeVersion=1.3.4 -DgroupId=example -DartifactId=testportapp
cd testportapp/
mvn initialize
mvn grails:test-app
Tests PASSED - view reports in target/test-reports
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESSFUL
Run Code Online (Sandbox Code Playgroud)
没关系.
现在添加一个尝试连接到grails的集成测试test/integration/ListenPortTest.groovy:
class ListenPortTest extends GroovyTestCase {
void testPort(){
def s = new Socket("localhost", 8080);
s.close()
}
}
Run Code Online (Sandbox Code Playgroud)
并再次运行测试.现在我们收到以下异常:
Connection refused
java.net.ConnectException: Connection refused
....
Run Code Online (Sandbox Code Playgroud)
我也使用浏览器,wget和netstat检查了它,看起来像grails没有启动或没有打开任何端口.
问题是:在执行集成测试时,如何配置grails来打开端口?
Bur*_*ith 12
Grails默认支持两种类型的测试,单元和集成,以及使用插件的功能测试.单元和集成测试非常相似,并且实际上都是单元测试,除了集成测试具有初始化的Spring应用程序上下文,Hibernate配置,内存数据库等.但是没有运行的Web服务器 - 您需要进行功能测试.
功能测试有几种选择,最流行的是WebTest:http://grails.org/plugin/webtest,功能测试插件:http://grails.org/plugin/functional-test,以及Selenium RC插件:http://grails.org/plugin/selenium-rc.
最新的是Geb:http://grails.org/plugin/geb,如果你正在寻找Selenium支持,它将是你最好的选择.该手册位于http://geb.codehaus.org/,最近有一篇关于它的博客文章:http://blog.springsource.com/2010/08/28/the-future-of-functional-网络测试/