Как мне использовать JUnitPerf с JWebUnit и JUnit 4? - PullRequest
7 голосов
/ 18 сентября 2008

У меня есть серия функциональных тестов с веб-приложением, которые корректно работают, но для каждого требуется настройка уровня класса и демонтаж, предоставляемый с аннотациями @BeforeClass и @AfterClass, и, следовательно, требуется JUnit 4.0 или выше.

Теперь я хочу выполнить нагрузочное тестирование с использованием небольшого количества этих функциональных тестов, которые моделируют большое количество пользователей, запрашивающих соответствующую страницу веб-приложения. Чтобы у каждого пользователя был свой «имитированный браузер» в JWebUnit, мне нужно использовать TestFactory в JUnitPerf для создания экземпляра тестируемого класса, но поскольку тесты JUnit 4 снабжены @Test, а не производными от TestCase Я получаю TestFactory must be constructed with a TestCase class исключение.

Кто-нибудь успешно использует JUnitPerf и его TestFactory с JUnit 4? И какой секретный соус позволяет всему этому работать?

1 Ответ

10 голосов
/ 19 сентября 2008

Вам нужен TestFactory с поддержкой JUnit4. Я включил один ниже.

import junit.framework.JUnit4TestAdapter;
import junit.framework.TestCase;
import junit.framework.TestSuite;

import com.clarkware.junitperf.TestFactory;

class JUnit4TestFactory extends TestFactory {

    static class DummyTestCase extends TestCase {
        public void test() {
        }
    }

    private Class<?> junit4TestClass;

    public JUnit4TestFactory(Class<?> testClass) {
        super(DummyTestCase.class);
        this.junit4TestClass = testClass;
    }

    @Override
    protected TestSuite makeTestSuite() {
        JUnit4TestAdapter unit4TestAdapter = new JUnit4TestAdapter(this.junit4TestClass);
        TestSuite testSuite = new TestSuite("JUnit4TestFactory");
        testSuite.addTest(unit4TestAdapter);
        return testSuite;
    }

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