2014-10-17 144 views
0

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

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

+1

“可我得到的OS来自Java的平台?“在提问之前做一些研究怎么样? – Plux 2014-10-17 14:41:51

+1

请参阅[如何提问](http://stackoverflow.com/help/how-to-ask)“搜索和研究 ...并跟踪您发现的内容即使您没有找到网站上其他地方的有用答案,包括未提供帮助的相关问题的链接可以帮助他人理解您的问题与其他问题的区别。“”解释您是如何遇到您要解决的问题的,**和**任何**困难都阻止你自己解决**。“ – 2014-10-17 15:06:54

回答

4

System.getProperty("os.name")会给你操作系统的名称。然后,您可以使用Assume类跳过一个测试,如果操作系统是Windows:

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

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

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