2012-06-22 10 views
6

मुझे कई कार्यात्मक चश्मे (specs2 का उपयोग करके) चलाने में समस्याएं आ रही हैं, विशेष रूप से परीक्षण जो टेस्टसेवर शुरू करते हैं, एक HTMLUNIT ब्राउज़र खोलते हैं, और तत्व को जांचने के लिए किसी पृष्ठ पर नेविगेट करते हैं। प्रश्न में पृष्ठ उन तत्वों को लोड करता है जिन्हें हम AJAX अनुरोध पर परीक्षण करते हैं। नीचे दिए गए त्रुटि संदेश के साथ तत्व का समय मौजूद होने का इंतजार।मैं Play 2.0.1 में TestServer के साथ कई कार्यात्मक चश्मा कैसे चला सकता हूं?

कोड स्निपेट:

trait CommonSteps extends BaseSpecfication { 
    val testServer: TestServer = TestServer(3333) 
    val testServerBaseURL: String = "http://localhost:3333/" 

    override def map(fs: => Fragments) = 
    Step(testServer.start())^super.map(fs)^Step(testServer.stop()) 

} 

class FunctionalTest1 extends Specification with CommonSteps { def is = 
    ... 

    ... extends When[...] { 
    val browser: TestBrowser = TestBrowser.of(HTMLUNIT) 
    browser.goTo(testServerBaseURL + "/some_path") 
    browser 
    } 

    ... extends Then[...] { 
    browser.await.until("element that is loaded on ajax request").isPresent() 
    ... 
    } 

} 

हम त्रुटि मिलती है: परीक्षण काम करता है

Caused by: java.sql.SQLException: Attempting to obtain a connection from a pool that has already been shutdown. 
Stack trace of location where pool was shutdown follows: 
    java.lang.Thread.getStackTrace(Thread.java:1479) 
    com.jolbox.bonecp.BoneCP.captureStackTrace(BoneCP.java:543) 
    com.jolbox.bonecp.BoneCP.shutdown(BoneCP.java:159) 
    com.jolbox.bonecp.BoneCPDataSource.close(BoneCPDataSource.java:123) 
    play.api.db.BoneCPApi.shutdownPool(DB.scala:387) 
    play.api.db.BoneCPPlugin$$anonfun$onStop$1.apply(DB.scala:252) 
    play.api.db.BoneCPPlugin$$anonfun$onStop$1.apply(DB.scala:250) 
    scala.collection.LinearSeqOptimized$class.foreach(LinearSeqOptimized.scala:59) 
    scala.collection.immutable.List.foreach(List.scala:45) 
    play.api.db.BoneCPPlugin.onStop(DB.scala:250) 
    play.api.Play$$anonfun$stop$1$$anonfun$apply$1.apply(Play.scala:75) 
    play.api.Play$$anonfun$stop$1$$anonfun$apply$1.apply(Play.scala:74) 
    scala.collection.LinearSeqOptimized$class.foreach(LinearSeqOptimized.scala:59) 
    scala.collection.immutable.List.foreach(List.scala:45) 
    play.api.Play$$anonfun$stop$1.apply(Play.scala:74) 
    play.api.Play$$anonfun$stop$1.apply(Play.scala:74) 
    scala.Option.map(Option.scala:133) 
    play.api.Play$.stop(Play.scala:73) 
    play.core.server.NettyServer.stop(NettyServer.scala:73) 

जबकि जब अलगाव में चलाते हैं, हम जब दो या उनमें से अधिक एक साथ चल त्रुटि मिलती है।

ऐसा लगता है कि यह this issue से संबंधित है, हालांकि मेरा उदाहरण एक स्कैला प्ले ऐप है। क्या कोई यह पुष्टि कर सकता है कि यह समस्या Play के नए संस्करण में तय की गई है? या, Play 2.0.1 में इस त्रुटि से बचने के लिए कोई कामकाज है।

उत्तर

3

यह समस्या Play 2.0.2 में तय की जाएगी, जो वर्तमान में आरसी स्थिति में है। यह 2.0.1 से 2.0.2 तक अपग्रेड करना सुरक्षित है, क्योंकि सबकुछ पिछड़ा संगत है।

इस जानकारी को प्रदान करने के लिए @ guillaume-bort के लिए धन्यवाद।

+0

अधिक जानकारी यहां उपलब्ध है: https://groups.google.com/forum/?fromgroups=#!topic/play-framework/znFuqeRz84w – blackbox

संबंधित मुद्दे