当前位置: 首页 > 知识库问答 >
问题:

配置JBehave以运行多线程TestNG测试

林星阑
2023-03-14

我试图创建一起使用JBehave和TestNG的概念验证。我想做的是在多个线程中同时运行一个故事,以测试我的代码的线程安全性。

我有一个简单的类,它只做一件事,在给定的整数值上计算模7。我已经为这个类创建了一个简单的BDD测试。我已经按照JBehave“入门”文档中的描述设置了BDD测试。唯一的区别是,在我的JUnitStory文件中,我没有使用JUnit的@Test注释,而是使用了TestNG的

@org.testng.annotations.Test(threadPoolSize = 10, invocationCount = 100, timeOut = 10000)
===============================================
    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)
....

共有1个答案

江承嗣
2023-03-14

在我看来,您只需要有2个或更多的测试类,并配置testing.xml文件以作为一个组运行该包中的所有类。因为TestNG通常“按类”分叉线程(这是默认配置??),所以您需要有多个类,否则它将内联运行所有10个方法调用,一次一个。

 类似资料:
  • 我有一个java maven项目,我希望使用多线程进行测试。我在src/test中有testng.xml,maven surefire插件被配置为使用它。就像这个页面一样:http://maven.apache.org/surefire/maven-surefire-plugin/examples/testng.html 编辑:增加了一定的pom条目

  • 我试图在我的项目中实现BDD,我也使用Jbehave,我参考了可用的在线材料,我创建了故事文件、Steps类和Runner类,如下所示,但我得到了一些奇怪的异常,我无法解决它。 1)故事文件,'sample.Story' 但是如果我使用Junit运行Runner类,我会得到 如果有人能帮我解决这个问题,那就太好了。

  • 步骤类文件: 然后我需要开发用于驱动故事文件的testrunner。 有人能帮助我使用TestNG框架创建一个测试运行器类文件吗?

  • 我正在学习使用TestNG进行单元测试。我想将变量“val”的唯一值传递给线程池中的每个线程,但它没有接收它。 这里是testng类: 和输出: [ThreadUtil]启动执行器超时:1000msworkers:5ThreadPoolSize:5BeForeMethod。线程id为:15 BeforeMethod。线程id为:12 BeforeMethod。线程id为:14 BeforeMeth

  • 我试图用TestNG并行运行一个示例测试项目。但它是在一个线程中顺序执行的。我漏掉什么了吗? 谢了。

  • 问题内容: 我正在使用TestNG使用AbstractTransactionalTestNGSpringContextTests作为基类来测试持久性Spring模块(JPA + Hibernate)。@ Autowired,@ TransactionConfiguration,@ Transactional的所有重要部分都可以正常工作。 当我尝试在带有threadPoolSize = x,invo