2014-01-02 3 views
1

Предположим, у меня есть программа Java для настройки и очистки данных для сквозных тестов. Он может удалять все из всех таблиц, заполнять их некоторыми исходными данными, такими вещами.Запуск Java-программы от Protractor

Есть ли способ выполнить его изнутри транспортира?

Меня интересует как способ сделать это прямо из спецификации (например, в beforeEach и afterEach), так и с помощью Транспортера между испытаниями.

ответ

1

Так как Protractor является приложением NodeJS, вы можете использовать NodeJS API.

У меня была аналогичная необходимость, и я выполнил Maven/Java с помощью метода exec модуля Node child_process. Проблема заключалась в производительности, поскольку для каждого вызова exec требовалось запустить новый экземпляр JVM.

Его не идеально, но это делает работу ...

var deferred = Q.defer(); 
try { 
    var child = process.exec('mvn verify', 
     function (error, stdout, stderr) { 
      console.log('stdout: ' + stdout); 
      console.log('stderr: ' + stderr); 
      if (error !== null) { 
       console.error('exec error: ' + error); 
       deferred.reject(); 
      } 
      else { 
       deferred.resolve(); 
      } 
     }); 
} catch (err) { 
    console.error('Caught ' + err); 
} 
return deferred.promise; 

Вы можете изучить проект node-java.