0

SWTbot を使用して Eclipse プラグインをテストしていますが、期待どおりの結果が得られません。プログラムの別の部分 (完全に機能していた場所) の向かい

次のコード...

@RunWith(SWTBotJunit4ClassRunner.class)
public class Tests {

    private static SWTWorkbenchBot bot;

    @BeforeClass
    public static void beforeClass() throws Exception {
        bot = new SWTWorkbenchBot();
        bot.viewByTitle("Welcome").close();
    }

    @Test
    public  void maybeThisWillWork(){
        IWorkbenchWindow activeWorkbenchWindow = PlatformUI.getWorkbench().getActiveWorkbenchWindow();
        System.out.println("A");
        IWorkbenchPage activePage = activeWorkbenchWindow.getActivePage();
        System.out.println("B");
    }

    @AfterClass
    public static void sleep() {
        System.out.println("In the sleep function");
        bot.sleep(10000);
    }
}

私に出力を与える -

A
In the sleep function

予想よりも

A
B
In the sleep function

何か案は?

4

2 に答える 2

0

したがって、答えはこうであることがわかります(また、stackoverflowの優れた利点は、実際にこれを別の場所で解決したことです。同様の問題があったことを思い出し、詳細を思い出すためにstackoverflowに戻る必要がありました)

SWTBot は適切な UI スレッドで実行されていないため、null ポインター エラーが発生しました。効果的に使用する必要がありました。

Display display = bot.getDisplay();
display.syncExec(objectThatdoesthethingiwanttogetdoneintheUIthread);
System.out.println(objectThatdoesthethingiwanttogetdoneintheUIthread.results);

...そして、それでうまくいきました...

于 2012-04-22T09:58:02.810 に答える
0

テストを JUnit プラグイン テストとして実行する必要がある場合があります。あなたはそれを試しましたか?

于 2012-04-08T20:36:50.280 に答える