当我使用JUnit + Selenium测试我的webapp时,问题最为明显。按下“登录”页面上的“提交”按钮时,测试前进所需的时间取决于我的数据库是否有密码。
当数据库没有密码(user =“root”,password =“”)时,它几乎是瞬间的,应该是这样。当数据库确实有密码(例如,user =“root”,password =“randomSecurePassword”)时,它需要一分半钟。最终仍然成功,但需要足够长的时间才能使网络驱动程序在完成之前超时。
我对这项技术并不十分熟悉,所以我愿意为我提供可能需要的任何细节。暂时,我正在尝试使用的环境的一些细节:
软件堆栈涉及Hibernate,Spring和Maven(用于构建和测试)。当我在服务器上构建项目时,我可以直接使用JUnit运行所有测试,但我没有这个问题。当我将程序作为Maven Build运行并让它运行所有测试时,确实会出现问题。
以下语句用于设置Spring的数据源以对用户进行身份验证:
dbManager.dataSource( dataSource ).passwordEncoder( passwordEncoder() )
.usersByUsernameQuery( "select username,password,enabled from Users where username=?" )
.authoritiesByUsernameQuery( "select username,role from Users where username=?" );
我非常确定正在初始化dataSource
;对于使用相同数据源的程序其余部分的单元测试,没有遇到任何问题或通过它访问数据库的延迟。
希望我已经很好地解释了这个问题。提前感谢您的帮助。