Мониторинг тестовых прогонов из другого плагина eclipse - PullRequest
0 голосов
/ 01 ноября 2011

Я разрабатываю плагин eclipse, который показывает пользовательские ссылки на журналы испытаний.В текущей реализации мы регистрируем слушатель запуска jUnit, который обновляет представление при каждом запуске комплекта, и это работает нормально, проблема в том, что тестовая среда теперь также поддерживает TestNG, и нам потребуется эквивалентная функциональность из плагина TestNG, если пользователь запускаетTestNG testcase.

Я нашел этот запрос функции http://jira.opensymphony.com/browse/TESTNG-313, который предполагает, что нужная мне функциональность существует, по крайней мере, так я ее интерпретирую.Во всяком случае, я не могу заставить его работать.Я пытаюсь создать и определить различные объекты в настройке представления, которые должны прослушивать ng-запуски и вызовы, например, onFinish (), но я не нашел способа «зарегистрировать» прослушивающий класс так, как вы, если вы определяетепостоянный слушатель из suite.xml или кода.Класс TestNG кажется одноэлементным, но только для каждого тестового запуска, а не для мониторинга плагина при каждом запуске пакета.Класс TestNGPlugin, похоже, не имеет соответствующих методов.Простая реализация интерфейса TestListenerAdapter или ITestListener в качестве частного класса не поможет.

Кто-нибудь знает, какой класс или интерфейс является наиболее подходящим для реализации для этого и, если необходимо, как они должны быть зарегистрированы?

Кстати, я использую Eclipse 3.7.0 и TestNG 6.1.1.

1 Ответ

0 голосов
/ 03 ноября 2011

Я нашел другой способ обойти проблему, возможно, лучшее решение в конце концов.Я отслеживаю org.eclipse.debug.core.DebugPlugin для любого запуска любого рода и делаю обновление в зависимости от этого.Этот маленький кусочек кода заставил его работать.

    ILaunchesListener2 runListener = new ILaunchesListener2() {
                @Override
                public void launchesAdded(ILaunch[] arg0) {
                }
                @Override
                public void launchesChanged(ILaunch[] arg0) {       
                }
                @Override
                public void launchesRemoved(ILaunch[] arg0) {
                }

                @Override
                public void launchesTerminated(ILaunch[] arg0) {
                    Display.getDefault().asyncExec(new Runnable() {
                        public void run() {

                            updateTestRunList();
                            viewer.setInput(testRuns);
                            viewer.refresh();
                        }
                    });

                }
            };
            DebugPlugin.getDefault().getLaunchManager().addLaunchListener(runListener);
...