2015-10-29 3 views
3

Я использовал nightwatch.js для автоматизации функциональных тестов. Проблема в том, что тест приостанавливается, когда набор тестов завершен. Это не заканчивает процесс. Код выглядит следующим образом:nightwatch.js, останавливающийся в конце набора тестов

var afterSuite = function(browser) { 
    dbFixture.deleteCollectionItemById(companyId, 'cilents'); 
    dbFixture.deleteCollectionItemById(customerId, 'users'); 
    dbFixture.deleteCollectionItemById(assetId, 'assets'); 
    dbFixture.deleteFile(imageId); 
    browser.end(); 
}; 

var loginTest = function(browser) { 
    dbFixture.createCompany(function(company) { 
     dbFixture.createCustomer(company._id, function(customer, assetid, imageid) { 
      companyId = company._id; 
      customerId = customer._id; 
      assetId = assetid; 
      imageId = imageid; 
      goTo.goTo(url.localhost_home + url.login, browser); 
      login.loginAsAny(customer.email, browser); 
      newCustomerLoginAssert.assertNewCustomerLogin(browser); 
     }); 
    }); 
}; 

module.exports = { 
    after: afterSuite, 
    'As a Customer, I should be able to login to the system once my registration has been approved': loginTest 
}; 

Я также попытался добавить done(); в afterSuite, но до сих пор не увенчались успехом. Заранее спасибо!

ответ

4

Подход - зарегистрировать глобальную функцию reporter, которая запускается после завершения всех тестов и выхода из нее соответственно. если тесты потерпели неудачу или были ошибочны, exit 1, в противном случае exit 0.

например. http://nightwatchjs.org/guide#external-globals

В вашем nightwatch.json конфигурации дополнения:

{ 
    "globals_path": "./config/global.js" 
} 

Тогда в ./config/global.js

module.exports = { 
    /** 
    * After all the tests are run, evaluate if there were errors and exit appropriately. 
    * 
    * If there were failures or errors, exit 1, else exit 0. 
    * 
    * @param results 
    */ 
    reporter: function(results) { 
     if ((typeof(results.failed) === 'undefined' || results.failed === 0) && 
     (typeof(results.error) === 'undefined' || results.error === 0)) { 
      process.exit(0); 
     } else { 
      process.exit(1); 
     } 
    } 
}; 
+0

спасибо товарищу! работает как шарм! :) – Cooperisduhace

1

Что является основной причиной этой проблемы?

Использование подхода Джоша решает проблему, но затем я больше не получаю отчет о юнитах.

+1

https://github.com/nightwatchjs/nightwatch/issues/301 – theoutlander

Смежные вопросы