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

当使用junit4+;为了执行所有测试套件,我得到一个错误:swt-win32-3650.dll已经加载到另一个类加载器中,dll,classloader,powermock,loaded,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( {Ob

当使用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() );
    }
}
用于将冲突类的加载延迟两次。您提到的dll swt-win32-3650.dll可能已经加载。因此,检查哪些类可以做到这一点,并将它们放在PowerMockIgnore参数中