4

使用 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() );
    }
}
4

1 回答 1

1

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

于 2013-09-27T07:57:51.800 回答