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

如何在TextReport和BrowserWebDriverContainer上替换JUnit5中的@Rule注释?

秦昂然
2023-03-14
java prettyprint-override">    @Rule
    public TextReport textReport = new TextReport();

    @Rule
    public BrowserWebDriverContainer chrome = new BrowserWebDriverContainer()
            .withCapabilities(new ChromeOptions());

编辑:我当前代码的部分是:

@Testcontainers
@ExtendWith(TextReportExtension.class)
public class TestBase {

    @Container
    public static BrowserWebDriverContainer chrome = new BrowserWebDriverContainer()
            .withCapabilities(new ChromeOptions());

    @Before
    public void setup() {
        RemoteWebDriver driver = chrome.getWebDriver();
        System.out.println("VNC Address: " + chrome.getVncAddress());

所有测试类都扩展了TestBase。我得到一个错误:

java.lang.IllegalStateException: Mapped port can only be obtained after the container is started

共有1个答案

程凯定
2023-03-14

Testcontainers通过将以下依赖项添加到项目中来提供JUnit5支持:

<dependency>
  <groupId>org.testcontainers</groupId>
  <artifactId>junit-jupiter</artifactId>
  <version>1.14.3</version>
  <scope>test</scope>
</dependency>

这允许您将BrowserWebDriverContainer重构为以下内容:

@Testcontainers
public class YourTest {

  @Container
  public static BrowserWebDriverContainer chrome = new BrowserWebDriverContainer()
            .withCapabilities(new ChromeOptions());

}

对于textreport规则,只需将以下扩展从selenide添加到类中,它将为您捕获控制台:

@Testcontainers
@ExtendWith(TextReportExtension.class)
public class YourTest {

}
 类似资料:
  • 我需要添加另一个JUnit依赖的模块吗?或者规则在JUnit5中不受支持?如果没有,如何替换注释以使测试再次工作?

  • 问题内容: 我在测试中使用Wiremock,并具有以下代码行: 我想切换到Junit5。因此,我添加了下一个依赖项(使用gradle): 但是当我尝试导入@Rule注释时没有任何建议。我是否需要添加另一个junit依赖模块?还是Junit5不支持规则?如果没有,我该如何替换@Rule批注以使测试再次起作用?谢谢。 问题答案: 从总体上看,你做了什么和JUnit 4中应该做和该关联提供的JUnit

  • 例如,我有这样的代码 如何将“\on the”替换为replace eAll()?

  • 我有一个测试类,@SpringBootTest: 我需要替换@ContextConfiguration上的@SpringBootTest,我这样做了:

  • 问题内容: 我试图将字符串分成数组并替换为,但无法做到,我也尝试了String.replaceAll这样的东西。 我想提供一个通往JNI的路径,并且它只能以这种方式读取。 问题答案: 在这种情况下不要使用- 这是用正则表达式指定的,这意味着您需要更多的转义。这应该很好: 请注意,由于Java字符串文字中的原因,反斜杠加倍-因此此处涉及的 实际 字符串是“单反斜杠”和“双反斜杠”-而不是双倍和四倍。

  • 问题内容: 我想用注释替换XML applicationContext配置。 如何用固定的构造函数参数替换简单的bean? 范例: 我正在阅读有关@Value的一些解释,但我不太了解如何传递一些固定值… 部署Web应用程序时是否可以加载此bean? 谢谢。 问题答案: 我认为您所追求的是: 您还可能希望通过系统属性来配置这些文件。您可以使用注释通过和语法读取系统属性。 为此,您可以在注释中使用不同