Как я могу сделать свой тестовый прогон JUnit в произвольном порядке?

Добавьте универсальный обработчик исключений:

request = urllib2.Request('http://www.example.com', postBackData, { 'User-Agent' : 'My User Agent' })

try: 
    response = urllib2.urlopen(request)
except urllib2.HTTPError, e:
    checksLogger.error('HTTPError = ' + str(e.code))
except urllib2.URLError, e:
    checksLogger.error('URLError = ' + str(e.reason))
except httplib.HTTPException, e:
    checksLogger.error('HTTPException')
except Exception:
    import traceback
    checksLogger.error('generic exception: ' + traceback.format_exc())
22
задан nimcap 18 September 2009 в 12:39
поделиться

3 ответа

У вас есть Sortable , но я не понимаю, как вы его используете.

Вы можете расширить BlockJUnit4ClassRunner и получить ] computeTestMethods () возвращает рандомизированную копию super.computeTestMethods (). Затем используйте @ RunWith , чтобы установить его в качестве используемого бегуна.

например,

package com.stackoverflow.mlk;

import java.util.Collections;

import org.junit.runners.BlockJUnit4ClassRunner;
import org.junit.runners.model.InitializationError;

public class RandomBlockJUnit4ClassRunner extends BlockJUnit4ClassRunner {

    public RandomBlockJUnit4ClassRunner(Class<?> klass)
            throws InitializationError {
        super(klass);
    }

    protected java.util.List<org.junit.runners.model.FrameworkMethod> computeTestMethods() {
        java.util.List<org.junit.runners.model.FrameworkMethod> methods = super.computeTestMethods();
        Collections.shuffle(methods);
        return methods;
    }

}

Затем

@RunWith(com.stackoverflow.mlk.RandomBlockJUnit4ClassRunner.class)
public class RandomOrder {
    @Test
    public void one() {
    }

    @Test
    public void two() {
    }

    @Test
    public void three() {
    }
}
14
ответ дан 29 November 2019 в 05:40
поделиться

В общем, что вам нужно сделать, это написать свой собственный тестовый исполнитель, а в классе тестового исполнителя объединить методы и произвольно запустить каждый тест (убедитесь, что вы не запускаете тест дважды) .

Подробнее о тестовой среде и о том, как написать собственный тестовый исполнитель, читайте здесь: http://www.ddj.com/architect/184415674

3
ответ дан 29 November 2019 в 05:40
поделиться

Я позабочусь о том, чтобы они не зависели от друг друга

Вы должны убедиться, что это так, не полагаясь на случайный порядок выполнения. Что заставляет вас опасаться, что могут существовать зависимости?

0
ответ дан 29 November 2019 в 05:40
поделиться
Другие вопросы по тегам:

Похожие вопросы: