2010-06-22 4 views
3

Я настраиваю тесты JUnit 4.7 с Selenium 1.x и Spring 3.0.Настройка контекста весеннего теста без SpringJUnit4ClassRunner или AbstractJUnit4SpringContextTests (в тестировании селена)

Я хочу расширить Selenium's SeleneseTestCase для ярлыков и соглашений, которые он предоставляет (что более важно, генерируемый код Selenium IDE, похоже, ожидает этого). Тем не менее, я хочу, чтобы контекст Spring и другая доброта присутствовали во время исполнения.

Потому что я не могу продлить весну AbstractJUnit4SpringContextTests, я пробовал украсить свой тестовый пример @RunWith(SpringJUnit4ClassRunner.class). Это успешно настраивает Spring, но вызывает некоторые странности в исполнении Selenium: тесты выполняются медленно, а окна браузера остаются открытыми, например. Я полагаю, что это переопределяет некоторую часть Selenium (просто догадка) ... К сожалению, базовый класс SeleneseTestCase допускает, например, изменение ограниченного набора параметров, исключая установку скорости выполнения (заставляет меня задаться вопросом, является ли базовый класс тем, что хорошо ведь ...).

Насколько я понимаю, для того, чтобы сделать все навороты пружины весной, я должен либо расширить AbstractJUnit4SpringContextTests, либо украсить класс @RunWith(SpringJUnit4ClassRunner.class). Однако первого я не могу, и последний приносит проблемы.

Имея только @ContextConfiguration, загружает контекст, но, по крайней мере, инъекция зависимости не работает. Вот где я остановился.

Как я могу инициализировать Spring аккуратно с помощью Selenium (или любой другой библиотеки с одним и тем же корпусом)?

Редактировать: Сделано текст более читаемым.

ответ

1

Меня раздражает аналогичная проблема, достаточная для написания a MethodRule implementation that will load a Spring context and autowire it's host test. Возможно, это начало того, что вы ищете.

Это позволит вам сделать что-то вроде этого:

@Rule 
public TemporarySpringContext context = new TemporarySpringContext("context.xml"); 

@Autowired 
MyService myServiceBean; 

Если вы сделаете какие-либо улучшения, пожалуйста, дайте мне знать.

+0

Ссылка больше не доступна, есть ли у вас другой указатель на ваше правило? Или, возможно, информацию, которую вы использовали для определения того, что необходимо в вашем правиле? – Lucas