Интеграционный набор тестов Grails - PullRequest
0 голосов
/ 31 августа 2010

У нас есть набор интеграционных тестов, которые зависят от того же набора статических данных.Поскольку объем данных огромен, мы не хотим устанавливать его для каждого уровня тестирования.Можно ли настроить данные в начале, запустить группу тестирования и выполнить откат данных в конце теста.

Что нам действительно нужно - это откат на уровне набора тестов, а не на уровне тестового набора.Мы используем Grails 1.3.1, любые указатели были бы очень полезны для нас, чтобы продолжить.Заранее спасибо.

-Пракаш

Ответы [ 2 ]

0 голосов
/ 01 сентября 2010

Вы можете взять под контроль поведение транзакции / отката, пометив свой тестовый случай как нетранзакционный и управляя данными, транзакциями и откатами самостоятельно.Пример:

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()
        }
    }
}
0 голосов
/ 31 августа 2010

для одного теста вы можете использовать:

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

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

еще не пробовал набор тестовых случаев (*).

У меня были некоторые проблемы с использованием findByName в статических методах, и мне пришлось прибегнуть к сохранению идентификатора и использованию get.

Я пытался свернуть пакет, но не радостно, получая: нет запускаемых методов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...