如何在Eclipse中使用运行方式> SWTBot测试运行JUnit 5测试

安德烈亚斯(Andreas Sewe)

我有几个使用SWTBot 2.8.0(在撰写本文时为最新版本)的非常简单的UI测试。这些内容保存在Eclipse插件片段中,并且不使用任何JUnit 4细节,例如@RunWith(SWTBotJunit4ClassRunner.class)

public class MyTest {

  private final SWTBot bot = new SWTBot();

  @Test
  public void test() {
    // …
  }
}

现在,如果我切换org.junit.Test到JUnit 5 org.junit.jupiter.api.Test,然后尝试通过“运行方式”>“ SWTBot测试”运行测试,则会收到以下错误:

Exception in thread "WorkbenchTestable" java.lang.IllegalArgumentException: Error: test loader org.eclipse.jdt.internal.junit5.runner.JUnit5TestLoader not found:
org.junit.platform.commons.util.PreconditionViolationException: Cannot create Launcher without at least one TestEngine; consider adding an engine implementation JAR to the classpath
    at org.junit.platform.commons.util.Preconditions.condition(Preconditions.java:295)
    at org.junit.platform.launcher.core.DefaultLauncher.<init>(DefaultLauncher.java:58)
    at org.junit.platform.launcher.core.LauncherFactory.create(LauncherFactory.java:91)
    at org.junit.platform.launcher.core.LauncherFactory.create(LauncherFactory.java:67)
    at org.eclipse.jdt.internal.junit5.runner.JUnit5TestLoader.<init>(JUnit5TestLoader.java:34)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
    at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
    at java.lang.Class.newInstance(Class.java:442)
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.createRawTestLoader(RemoteTestRunner.java:370)
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.createLoader(RemoteTestRunner.java:365)
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.defaultInit(RemoteTestRunner.java:309)
    at org.eclipse.swtbot.eclipse.core.RemotePluginTestRunner.init(RemotePluginTestRunner.java:85)
    at org.eclipse.swtbot.eclipse.core.RemotePluginTestRunner.main(RemotePluginTestRunner.java:63)
    at org.eclipse.swtbot.eclipse.core.UITestApplication.runTests(UITestApplication.java:120)
    at org.eclipse.e4.ui.internal.workbench.swt.E4Testable.lambda$0(E4Testable.java:76)
    at java.lang.Thread.run(Thread.java:748)

接着是没有测试与转轮发现:5的JUnit消息,如果我中止执行。

MANIFEST.MF包含以下几行:

Require-Bundle: org.eclipse.swtbot.swt.finder;bundle-version="[2.7.0,3.0.0)",
 org.junit;bundle-version="[4.12.0,5.0.0)",
 org.junit.jupiter.api;bundle-version="[5.4.0,6.0.0)",
 org.junit.jupiter.engine;bundle-version="[5.4.0,6.0.0)"

我还需要添加其他内容Require-Bundle来摆脱上述异常吗?

注意:相反,“运行方式”>“ JUnit插件测试”正确初始化了测试运行程序(“ JUnit”视图显示Test.test带有的测试Runner: JUnit 5),但随后冻结,因为测试当然是针对UI威胁运行的,这对于SWTBot测试是不可行的

香蕉小麦

根据邮件列表公告,SWTBot将仅支持从SWTBot 3.0开始的JUnit 5,该版本是Eclipse 2020-06的一部分

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用JUNIT测试运行AsyncHttpClient

来自分类Dev

带有Spring Boot JUnit 5测试的Wiremock:测试运行后正在使用的地址

来自分类Dev

如何终止已进入无限循环的Eclipse中的JUnit测试运行

来自分类Dev

着色golang测试运行输出

来自分类Dev

作为Maven测试运行

来自分类Dev

再现ScalaCheck测试运行

来自分类Dev

Couchbase测试运行失败

来自分类Dev

Intellij测试运行历史

来自分类Dev

测试运行null和字母?

来自分类Dev

Serverspec测试运行问题

来自分类Dev

在测试运行期间浏览

来自分类Dev

如何使用dotnet测试运行特定测试?

来自分类Dev

Junit4在测试运行时引发异常

来自分类Dev

当我“将Spring作为JUnit测试运行”时,内部会发生什么?

来自分类Dev

如何使用Vividus工具同步测试运行?

来自分类Dev

可以在测试运行期间获得先前的测试

来自分类Dev

使单元测试作为集成测试运行

来自分类Dev

Visual Studio测试运行无法加载测试

来自分类Dev

Android的测试运行失败:没有测试结果

来自分类Dev

如何通过Mocha测试运行时参数?

来自分类Dev

如何测试运行SQL查询的方法

来自分类Dev

如何强制Google基准测试运行多个迭代?

来自分类Dev

如何通过Mocha测试运行时参数?

来自分类Dev

如何为C ++程序创建测试运行/计划?

来自分类Dev

如何自动重命名Testrail中的测试运行

来自分类Dev

如何测试运行非主要方法?[Java,IntelliJ]

来自分类Dev

使用Selenium IDE自动化测试运行

来自分类Dev

MAVEN:使用Maven测试运行多个Maven项目

来自分类Dev

如何在“运行测试”屏幕之外查看“ MTM测试运行”注释?