2010-08-31 299 views
0

我們有一套集成測試依賴於相同的一組靜態數據。由於數據量巨大,我們不希望按照測試級別進行設置。是否可以在開始時設置數據,運行測試組並在測試結束時回滾數據。Grails集成測試套件

我們有效地想要的是回滾測試套件級別而不是測試用例級別。我們使用的是Grails 1.3.1,任何指針都會對我們繼續有很大的幫助。提前致謝。

-Prakash

回答

0

一個測試用例,你可以使用:

@BeforeClass 
public static void setUpBeforeClass() throws Exception { 
} 

@AfterClass 
public static void tearDownAfterClass() throws Exception { 
} 

沒有嘗試過一套測試用例(還)。

我在靜態方法中使用findByName時遇到了一些麻煩,不得不求助於保存一個id並使用get。

我確實嘗試了一個套件,但沒有快樂,得到:沒有可運行的方法。

0

您可以通過將您的測試案例標記爲非事務性並自行管理數據,事務和回滾來控制事務/回滾行爲。例如:

class SomeTests extends GrailsUnitTestCase { 

    static transactional = false 
    static boolean testDataGenerated = false 

    protected void setUp() { 
     if (!testDataGenerated) { 
      generateTestData() 
      testDataGenerated = true 
     } 
    } 

    void testSomething() { 
     ...test... 
    } 

    void testSomethingTransactionally() { 
     DomainObject.withTransaction { 
      ...test... 
     } 
    } 

    void testSomethingTransactionallyWithRollback() { 
     DomainObject.withTransaction { status -> 
      ...test... 
      status.setRollbackOnly() 
     } 
    } 
}