我正在尝试创建一个同时使用 JBehave 和 TestNG 的概念验证。我想做的是在多个线程中同时运行一个故事,以测试我的代码线程安全性。
我有一个简单的类,它只做一件事,对给定的整数值计算模 7。我为这个类创建了一个简单的 BDD 测试。我已经按照 JBehave“入门”文档中的说明设置了 BDD 测试。唯一的区别是,在我的 JUnitStory 文件中,我没有使用 JUnit 的 @Test 注释,而是使用了 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 都比较陌生,所以我想知道这可能只是一个配置问题,还是实际上是 JBehave 中的一个错误。