当使用junit4 + powermock执行所有测试套件时,我收到一个错误:swt-win32-3650.dll已经加载到另一个类加载器中

时间:2013-05-30 09:09:46

标签: dll classloader powermock loaded

当使用junit4 + powermock执行所有测试套件时,我收到一个错误:swt-win32-3650.dll已经加载到另一个类加载器中 alltest.java:

@RunWith( Suite.class )
@SuiteClasses( {test1.class, test2.class} )
public class AllTests
{
}

test1.java

@RunWith( PowerMockRunner.class )
@PrepareOnlyThisForTest( {Object.class} )
public class test1 extends TestCase
{
    @Test
    public void testcase()
    {
        Shell sh = Mockito.mock( Shell.class );
        PowerMockito.when( sh.getText() )
                .thenReturn( this.getClass().getName() );
        PowerMockito.when( sh.getText() )
                .thenReturn( this.getClass().getName() );
        assertTrue( sh.getText() == this.getClass().getName() );
    }

}

test2.java

@RunWith( PowerMockRunner.class )
@PrepareOnlyThisForTest( {Object.class} )
public class test2 extends TestCase
{
    @Test
    public void testcase()
    {
        Shell sh = Mockito.mock( Shell.class );
        PowerMockito.when( sh.getText() )
                .thenReturn( this.getClass().getName() );
        assertTrue( sh.getText() == this.getClass().getName() );
    }
}

1 个答案:

答案 0 :(得分:1)

使用PowerMockIgnore两次推迟加载冲突类。您提到的dll swt-win32-3650.dll可能已经加载了。因此,请检查可以执行此操作的类,并将它们放入PowerMockIgnore争论中。