我在GGTS中运行grails 2.3.3。
我在Spring GGTS中成功运行了一个服务功能的单元测试。
我希望能够使用这个单元测试来开发特定的功能 - 这样的方法将真正加快我的发展。
这意味着我需要对正在测试的服务功能进行更改,然后一遍又一遍地重新测试(毫无疑问是对我的编码技能的悲伤反思!)。问题是当我对逻辑或任何log.debug输出进行更改时,它在测试中没有出现。换句话说,测试继续针对原始服务功能而不是更新的服务功能运行。
为了让我强制它使用更新的功能,我发现这样做的唯一方法是重启GGTS!
我是否可以在GGTS中使用命令强制测试我正在测试的函数的最新版本?
以下是我在GTTS中使用的命令:
test-app unit:UtilsService
我在功能更新后运行干净但没有成功:
test-app -clean
我也在努力从测试功能中获得额外的输出 - 介绍' println'或者' log.debug'命令会导致测试失败。
了解有关测试语法的文档的良好链接会很有用 - 我已经查看了关于测试的grails第12节。
这是测试文件:
package homevu1
import grails.test.mixin.TestFor
import spock.lang.Specification
/**
* See the API for {@link grails.test.mixin.services.ServiceUnitTestMixin} for usage instructions
*/
@TestFor(UtilsService)
class UtilsServiceSpec extends Specification {
// to test utilSumTimes for example use the command :
// test-app utilSumTimes
// test-app HotelStay
def setup() {
}
def cleanup() {
}
void "test something"() {
when:
def currSec = service.utilSumTimeSecs( 27, 1, false)
//println "currSec" , currSec
then:
//println "currSec" , currSec
assert currSec == "26"
}
}
如果我取消注释任何一条println行,则不会显示这些注释,并且测试失败。
欢迎任何建议。
-Mike
答案 0 :(得分:0)
我现在通过从命令提示符(在MS Windows中)运行grail来实现此功能。
在命令提示符下,我移动到了grails项目的根文件夹/目录 - 在我的情况下:
cd C:\ grails \ workspace \ rel_3.1.0 \ HomeVu
然后我输入grails来启动grails命令行会话。
我使用的单元测试命令是:
test-app -unit UtilsService -echoOut -echoErr
那说我仍然无法在测试文件中成功放置任何打印命令 - 但我可以使用断言来确定任何问题。
也无法显示服务函数的grails代码的最后一行log.debug行的输出。也许MS Windows存在一些输出缓冲问题。
至少我现在可以通过更改服务/功能代码来进行一些快速的功能开发,并且立即测试是针对一组已知的需求条件。
希望这有助于其他人。
-Mike