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

为jbehave junit runner添加@RunWith会破坏使用Maven的jbehave构建

程博学
2023-03-14

我在Maven构建中使用JBehave,我也在Eclipse中开发它,有时在Eclipse中使用JUnit runner运行我的单元测试。我发现jbehave junit runner可以很好地美化jbehave中的故事。然而,添加jbehave junit runner似乎破坏了我的Maven构建。

安装后mvn清洁安装的结果https://github.com/codecentric/jbehave-junit-runner:

[INFO] -------------------------------------------------------------
[ERROR] COMPILATION ERROR : 
[INFO] -------------------------------------------------------------
[ERROR] /Users/mosofsky/Developer/FollowerDownloader/followerdownloader-frontend/src/main/java/com/netbase/followerdownloader/FollowerDownloaderStories.java:[28,23] error: package org.junit.runner does not exist
[ERROR] /Users/mosofsky/Developer/FollowerDownloader/followerdownloader-frontend/src/main/java/com/netbase/followerdownloader/FollowerDownloaderStories.java:[42,1] error: cannot find symbol
[ERROR]   symbol: class RunWith
/Users/mosofsky/Developer/FollowerDownloader/followerdownloader-frontend/src/main/java/com/netbase/followerdownloader/FollowerDownloaderStories.java:[28,23] error: package org.junit.runner does not exist
[ERROR] /Users/mosofsky/Developer/FollowerDownloader/followerdownloader-frontend/src/main/java/com/netbase/followerdownloader/FollowerDownloaderStories.java:[42,1] error: cannot find symbol
[ERROR]   symbol: class RunWith
/Users/mosofsky/Developer/FollowerDownloader/followerdownloader-frontend/src/main/java/com/netbase/followerdownloader/FollowerDownloaderStories.java:[50,28] error: cannot access Runner
[INFO] 5 errors 
[INFO] -------------------------------------------------------------
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 2.043 s
[INFO] Finished at: 2014-12-23T15:38:39-08:00
[INFO] Final Memory: 14M/156M
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:2.5.1:compile (default-compile) on project followerdownloader-frontend: Compilation failure: Compilation failure:
[ERROR] /Users/mosofsky/Developer/FollowerDownloader/followerdownloader-frontend/src/main/java/com/netbase/followerdownloader/FollowerDownloaderStories.java:[28,23] error: package org.junit.runner does not exist
[ERROR] /Users/mosofsky/Developer/FollowerDownloader/followerdownloader-frontend/src/main/java/com/netbase/followerdownloader/FollowerDownloaderStories.java:[42,1] error: cannot find symbol
[ERROR] symbol: class RunWith
[ERROR] /Users/mosofsky/Developer/FollowerDownloader/followerdownloader-frontend/src/main/java/com/netbase/followerdownloader/FollowerDownloaderStories.java:[28,23] error: package org.junit.runner does not exist
[ERROR] /Users/mosofsky/Developer/FollowerDownloader/followerdownloader-frontend/src/main/java/com/netbase/followerdownloader/FollowerDownloaderStories.java:[42,1] error: cannot find symbol
[ERROR] symbol: class RunWith
[ERROR] /Users/mosofsky/Developer/FollowerDownloader/followerdownloader-frontend/src/main/java/com/netbase/followerdownloader/FollowerDownloaderStories.java:[50,28] error: cannot access Runner
[ERROR] -> [Help 1]
[ERROR] 
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR] 
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoFailureException

是关于什么的https://github.com/codecentric/jbehave-junit-runner那破坏了我的身材?

共有1个答案

商正浩
2023-03-14

这个问题的解决方案是通过在pom中从junit中删除测试元素来扩展junit的范围。xml文件:

<dependency>
  <groupId>junit</groupId>
  <artifactId>junit</artifactId>
  <version>4.11</version>
  <!-- <scope>test</scope> -->     <!-- SOLUTION: COMMENTED OUT THIS LINE -->
</dependency>

我想我偶然发现了JBehave和行为驱动设计(BDD)的悖论:

  • 一方面,BDD没有进行测试(参见http://jbehave.org/reference/stable/examples-philosophy.html).
  • 另一方面,作为BDD的工具,https://github.com/codecentric/jbehave-junit-runner,取决于测试框架中的@RunWith注释,特别是org。朱尼特。跑步者RunWith

我担心,如果我不再将junit的范围限制在Maven标准测试目录中,我的解决方案可能会对我的生产代码产生影响。

尽管如此,我的解决方案确实解决了原来的问题。

 类似资料:
  • 这是我的密码: 将按如下方式生成: 都很好。一切都被包装成标签。 现在我需要将这一行添加到上面的代码中: 下面是生成的代码: 但令人惊讶的是,它将被错误地生成: 看到没?元素跳出了标记。我怎么能把所有的东西都放在里面?

  • 编辑1: 我目前从一个Main类调用它,如下所示: } 原文: 解释后代码如下: 我有一个带有JavaConfig的Spring应用程序,称之为主应用程序,它从库中导入另一个Spring JavaConfig类。这个导入的JavaConfig应该用一个方面包装在主应用程序中创建的任何数据源,这个方面有一个自动连接的LogDelegator。 只要主应用程序只包含一个数据源,一切都正常。但是,当我向

  • 有人知道如何在Redis的Spring会话中添加会话破坏事件吗?我读到正常的方法是不可能的。我愿意这样做,因为我需要在一个会话被破坏(超时或注销)后做一些清理过程。我真的很感激你们的帮助,谢谢你们。

  • 使用这个延迟加载代码,我的lightbox中断:单击一个图像显示lightbox,但没有图像。 通过检查inspector,我可以看到lightbox img标签没有值。我猜在延迟加载将属性和值分配给图像之前,lightbox会检查src。 如何解决此问题?

  • 问题内容: 我听过关于此主题的不同回答,那么销毁PHP会话的肯定方法是什么? 在最简单的情况下,这是否足以真正终止用户与服务器之间的会话? 问题答案: 要销毁会话,您应该采取以下步骤: 删除会话数据 使会话ID无效 为此,我将使用以下代码: 为了确保会话ID无效,您应该只允许脚本启动的会话ID。因此,设置一个标志并检查它是否被设置: 此外,您可以使用此时间戳定期交换会话ID,以缩短其寿命:

  • 我已经创建了一个新的Conda环境并将其添加到我的Jupyter笔记本中。我必须再次将matplotlib安装到此环境中。现在,当我在Jupyter中使用这个新的Conda环境导入matplotlib时,出现以下错误: 在1个导入Numpy为np 2个导入熊猫为pd---- ~\AppData\漫游\Python\Python38\site-包\matplotlib__init__. py在203