Fixtures.loadModels不在PlayFramework中工作

Fixtures.loadModels不在PlayFramework中工作,playframework,playframework-1.x,Playframework,Playframework 1.x,我正在使用PlayFramework 1.2.5,正在进行如下所示的功能测试 public class CaseFoldersControllerTests extends FunctionalTest { @Before public void setup() { Fixtures.deleteDatabase(); Fixtures.loadModels("data.yml"); } @After public void teardown() {

我正在使用PlayFramework 1.2.5,正在进行如下所示的功能测试

public class CaseFoldersControllerTests extends FunctionalTest {

  @Before
  public void setup() {
    Fixtures.deleteDatabase();
    Fixtures.loadModels("data.yml");
  }

  @After
  public void teardown() {
  }

 ...

  @Test
  public void createAction() {
    ....
    Request request = newRequest();
    request.path = "/case/create";
    request.body = new ByteArrayInputStream(json.getBytes());
    Response response = makeRequest(request);

    //Verify response is OK
    assertStatus(200, response);
  }
}
data.yml中的数据在执行我的测试(createAction)期间不可用。但是,在我的测试完成后,数据就在数据库中了

如果我将数据加载语句从@Before方法移动到@After方法…那么测试成功(因为数据现在已从先前的测试中清理和重置)

我假设这是与JPA会话相关的,但在fixture.loadModels()之后添加以下内容没有帮助:

JPA.em().flush();
另外,有趣的是@Before方法是从我的单元测试中复制过来的,它在单元测试中工作得很好。只有在功能测试方面我才有问题

蒂亚,
M2

首先,我们需要确保您的设置确实被调用,因此我建议在您的方法中使用记录器来了解这一点。如果它真的被调用了,那么我建议您在不使用该请求的情况下测试您的yml,也许可以对您试图用yml插入的模型创建一个findAll()。通过这种方式,我们可以确保弄乱代码的不是您的请求

**这在我身上发生过。。。。。my@Before没有运行,因为我导入了play.MVC.Before,您必须导入org.junit.Before