【问题标题】:Disable Junit5 tests based on file separator禁用基于文件分隔符的 Junit5 测试
【发布时间】:2020-05-12 17:35:08
【问题描述】:

我希望能够根据 OS 使用的文件分隔符禁用 JUnit5 测试。

例如,windows 文件分隔符是\,示例路径是src\resources\fou

在另一个OS 上,文件分隔符可能是/(可能是MAC?)。 我希望我的测试仅在文件分隔符为\ 时运行

我发现了这个:@EnabledIfSystemProperty(named = "file.separator", matches = "[/]") 所以我将/ 更改为\ 以匹配Windows 文件分隔符,但它没有给我这个错误: failed to evaluate condition.

【问题讨论】:

    标签: java annotations junit5


    【解决方案1】:

    只有 Windows 使用 \ 作为其文件分隔符。

    因此,以下应该会导致想要的行为。

    @Test
    @EnabledOnOs(OS.WINDOWS)
    void onlyOnWindows() {
        // ...
    }
    
    

    复制自:https://junit.org/junit5/docs/current/user-guide/#writing-tests-conditional-execution-os

    也就是说,您可以通过 4(四个)反斜杠匹配 Java 中的单个反斜杠。这也应该有效:

    @EnabledIfSystemProperty(named = "file.separator", matches = "\\\\")
    

    【讨论】:

    • 我用了两个 \\.应该去四个。我认为有人可能会更改(不知道这是否真的可能)文件分隔符,这就是我不想检查操作系统的原因。@EnabledIfSystemProperty(named = "file.separator", matches = "\\\\") 工作正常。谢谢。
    猜你喜欢
    • 2021-03-03
    • 1970-01-01
    • 2015-10-19
    • 2010-12-21
    • 2021-12-17
    • 2020-04-30
    • 2023-03-30
    • 2021-04-16
    • 1970-01-01
    相关资源
    最近更新 更多