2014-02-26 58 views

回答

0

这些帖子有点过时了,虽然我不能说出接受的答案,但其他一些答案仍然有效。 Play和specs2自2012年以来有一些相对较大的变化,所以我会提供一个我知道今天会工作的例子(我每天都会使用)。

我做了两件事情,使它更容易隔离测试。首先,我命名空间所有我的测试类。根据包test.integration进行集成测试,并在test.unit下进行单元测试。其实我去有点超出了,例如:test.unit.modelstest.unit.controllers.users

然后我可以运行所有的我的模型试验用:test-only test.unit.models.*

我也觉得有帮助的标记每个单独测试的情况下,无论是我正在测试的函数的名称或其他有用的描述符。

package test.unit.models 

import org.specs2.mutable._ 
import play.api.test._ 
import play.api.test.Helpers._ 
import models.User 

object UserSpec extends Specification { 

    "The user model" should { 

     tag("create") 
     "successfully create a new user" in new WithApplication { 

       .... 

     } 

     ... 
    } 

} 

现在我可以有超过其测试与运行更加精细的控制:

test-only test.unit.models.UserSpec -- include create 

也许我想运行所有的单元测试,除了那些被标记的“创造”:

test-only test.unit.* -- exclude create 

通配符也可以放在完整软件包名称的任何位置。例如,如果您有两个型号规格:test.unit.models.UserSpectest.unit.models.UserCountrySpectest-only test.unit.models.User*会同时运行。

相关问题