本机库SWT lib已经加载到jenkins作业中

时间:2016-10-25 16:47:24

标签: jenkins junit swt

我构建的软件是基于SWT的RCP应用程序。我有一些单元测试,一切都在Jenkins CI上正常运行,直到我从SWT lib添加类到测试。构建失败并显示消息:

Could not load SWT library. Reasons: 
 no swt-gtk-4430 in java.library.path
 no swt-gtk in java.library.path
 Native Library /var/lib/jenkins/.swt/lib/linux/x86_64/libswt-gtk-4430.so already loaded in another classloader
 Can't load library: /var/lib/jenkins/.swt/lib/linux/x86_64/libswt-gtk.so

是否有人遇到同样的问题,并且如何规避?

例如:我想编写测试,检查一些复杂的SWT组合以正确的方式组合在一起。

更新

一个简单的示例测试:

public class FooTest {
     private Composite parent = new Composite(new Shell(), SWT.NONE);
     private PartFactory sut = new PartFactory();

     @Test
     public void createPart() {
       final MPart part = sut.create(parent);
       ...
     }
  }

我知道我可以嘲笑ShellComposite。这适用于我的一些组件。但在某些情况下,这不是一种选择。如何在没有上述错误的情况下使用SWT类。在IDE中的Windows上,测试工作正常。但它在Linux上的Jenkins上失败了。

POM不是很特别。测试使用Surefire执行:

<plugin>
  <groupId>org.apache.maven.plugins</groupId>
  <artifactId>maven-surefire-plugin</artifactId>
  <executions>
    <execution>
      <id>test</id>
      <phase>test</phase>
      <goals>
        <goal>test</goal>
      </goals>
    </execution>
  </executions>
</plugin>

0 个答案:

没有答案