仅在Linux上运行JUnit测试

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了仅在Linux上运行JUnit测试相关的知识,希望对你有一定的参考价值。

我有一个基本的JUnit测试,我只想在Linux上运行。如果我在Windows上构建代码,我如何跳过测试?

例如,我可以从Java获得OS平台吗?

答案

System.getProperty("os.name")将为您提供操作系统的名称。如果操作系统是Windows,则可以使用Assume类跳过测试:

@Test
public void testSomething() {
    Assume.assumeFalse
        (System.getProperty("os.name").toLowerCase().startsWith("win"));
    // test logic
}

编辑: 现代的JUnit Jupiter有一个built-in capability@EnableOnOs@DisableOnOs注释:

@Test
@EnabledOnOs(LINUX)
public void testSomething() {
    // test logic
}
另一答案

您还可以使用@Before绕过类中包含的所有测试:

@Before
public void beforeMethod()
{
    Assume.assumeFalse(System.getProperty("os.name").toLowerCase().startsWith("win"));
    // rest of the setup
}

以上是关于仅在Linux上运行JUnit测试的主要内容,如果未能解决你的问题,请参考以下文章

仅在调试代码时出现进程中的 hsqldb 错误

运行 Gradle JUnit 测试时出现“地址已在使用:绑定”异常

Java Hibernate LazyInitializationException 仅在仅使用 JUnit 运行时出现

使用java.lang.Exception的错误:测试类应该只有一个公共构造函数

如何将JUnit 4测试添加到JUnit 3测试套件中

如何在片段着色器中进行自定义模板测试