ich meine Bewerbung Play1.2+Java7
-Play1.4+Java8
Tests passieren mit Playframework 1.2.x doch irgendwie Playframework 1.4.x
Play1.2+Java7
mein Test bestanden OK Play1.4+Java8
mein Test nicht am migrieren.
Ich habe den Code auf das Minimum reduziert und reproduziert das Problem. Hier ist die Hauptlinie
Das Modell ist
package models;
import play.db.jpa.Model;
import javax.persistence.Entity;
@Entity
public class Token extends Model {
public String name;
public String role;
}
Der Controller ist
package controllers;
import models.Token;
import play.mvc.Controller;
public class Application extends Controller {
public static void index() {
renderJSON(Token.all().fetch());
}
}
Die DB Testkonfiguration ist
%test.application.mode=dev
%test.db.url=jdbc:h2:mem:play;MODE=MYSQL;LOCK_MODE=0
%test.jpa.ddl=create
Der Test ist
import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
import org.junit.*;
import org.junit.Before;
import play.test.*;
import play.mvc.*;
import play.mvc.Http.*;
import models.*;
public class ApplicationTest extends FunctionalTest {
@Before
public void before() {
Token.deleteAll();
}
@Test
public void testThatIndexPageWorks() {
{
Response response = GET("/");
assertIsOk(response);
String content = getContent(response);
System.out.println(content);
assertFalse(content.contains("le nom"));
assertFalse(content.contains("identifier"));
}
Token t = new Token();
t.name="le nom";
t.role="identifier";
t.save();
{
Response response = GET("/");
assertIsOk(response);
String content = getContent(response);
System.out.println(content);
assertTrue(content.contains("le nom"));
assertTrue(content.contains("identifier"));
}
}
}
Das Verhalten ist nicht vorhersehbar. Es scheint, dass Spar Einheiten in den Tests verpflichtet sind async und hängt von den Fäden des Controllers aufrufen, während sie nicht in Release tat 1.2
ich das ganze Projekt zur Verfügung stellen kann, wenn nötig