2013-04-18 3 views
1

Я пытаюсь создать концепцию использования JBehave и TestNG. То, что я хочу сделать, заключается в том, чтобы запускать историю одновременно в нескольких потоках, чтобы проверить безопасность потоков кодов.Настройка JBehave для запуска многопоточных тестов TestNG

У меня есть простой класс, который делает только одно, вычисляет по модулю 7 заданное целочисленное значение. Я создал простой BDD-тест для этого класса. Я установил свой BDD-тест, как описано в документации JBehave «Getting started». Единственное отличие в том, что в моем файле JUnitStory, вместо того, чтобы использовать @test аннотаций JUnit, я уже использовал в TestNG

@org.testng.annotations.Test(threadPoolSize = 10, invocationCount = 100, timeOut = 10000) 

Когда я запускаю тест, все идет хорошо для первого 70-90% случаев , то возникает исключение и остальные трассы не в состоянии

=============================================== 
    Default test 
    Tests run: 100, Failures: 11, Skips: 0 
=============================================== 

исключение, которое происходит,

FAILED: run 
java.util.concurrent.RejectedExecutionException 
    at java.util.concurrent.ThreadPoolExecutor$AbortPolicy.rejectedExecution(ThreadPoolExecutor.java:1774) 
    at java.util.concurrent.ThreadPoolExecutor.reject(ThreadPoolExecutor.java:768) 
    at java.util.concurrent.ThreadPoolExecutor.execute(ThreadPoolExecutor.java:656) 
    at java.util.concurrent.AbstractExecutorService.submit(AbstractExecutorService.java:92) 
    at org.jbehave.core.embedder.StoryManager.submit(StoryManager.java:203) 
    at org.jbehave.core.embedder.StoryManager.runningStory(StoryManager.java:138) 
    at org.jbehave.core.embedder.StoryManager.filterRunning(StoryManager.java:122) 
    at org.jbehave.core.embedder.StoryManager.runningStoriesAsPaths(StoryManager.java:107) 
    at org.jbehave.core.embedder.StoryManager.performStories(StoryManager.java:93) 
    at org.jbehave.core.embedder.StoryManager.runStories(StoryManager.java:81) 
.... 

Я относительно новым для обоих JBehave и TestNG, поэтому мне было интересно, если это может быть сим pile проблема конфигурации или это на самом деле ошибка в JBehave.

ответ

0

Возможно ли, что пул потоков отключен, и вы (или JBehave) пытаетесь отправить задания на него?

+0

Не знаю, но исключение укажет на это. Вот почему я спросил, может ли это быть проблемой конфигурации. –

0

Мне кажется, что вам просто нужно иметь 2 или более тестовых класса и настроить файл test.xml для запуска всех классов в этом пакете в качестве группы. Поскольку TestNG обычно запускает потоки «по классу» (это конфигурация по умолчанию?), Вам нужно иметь несколько классов, иначе она будет запускать все 10 ваших вызовов метода inline, по одному за раз.

Смежные вопросы