Я работаю над автоматизацией пользовательского интерфейса веб-приложения, используя internjs, и я m пытаюсь напрямую выгрузить отчет о тестировании для функционального теста в файл excel. Что я хочу сделать, так это:
- Создать тестовый отчет функционального теста в файле Excel
- Сделайте снимок экрана, если тест не пройден или пропущен.
- Сожмите (архивируйте) отчет Excel и снимок экрана в один zip-файл.
Для этого мне нужно установить стороннюю библиотеку archiver.
Теперь я застрял в очень простой проблеме, то есть я не могу импортировать библиотеку в свой собственный репортер. Итак, может ли кто-нибудь помочь мне в том, как импортировать стажерский проект внешней библиотеки.
Я установил архиватор с помощью следующей команды: npm install archiver --save
Мой код выглядит следующим образом:
define([
'intern/dojo/node!fs',
'../TestUtils/ExcelUtil',
'../TestUtils/SnapShotUtil',
'archiver' //<= import archiver
], function (fs, ExcelUtil, SnapShotUtil, archiver) {
var Excel = ExcelUtil.instance();
var screenshotDir = 'test-reports/screenshot/';
function TestReporter(config) {
config = config || {};
}
TestReporter.prototype = {
suiteError: function (suite) {
SnapShotUtil.takeSnapShot(suite, suite.name + '-' + suite.error.name)
},
testPass: function (test) {
Excel.addRow([test.parent.name, test.name, 'N/A', 'Pass', 'N/A'])
},
testSkip: function (test) {
var picName = screenshotDir + test.parent.name.replace(/ /g, '') + '-' +
test.name.replace(/ /g, '') + '.png'
Excel.addRow([test.parent.name, test.name, 'N/A', 'Skipped', '=HYPERLINK(' + picName + ',ScreenShot)'])
SnapShotUtil.takeSnapShot(test, picName)
},
testFail: function (test) {
var picName = screenshotDir + test.parent.name.replace(/ /g, '') + '-' +
test.name.replace(/ /g, '') + '-' + test.error.name + '.png'
Excel.addRow([test.parent.name, test.name, test.error.name, 'Failed', '=HYPERLINK(' + picName + ',ScreenShot)'])
SnapShotUtil.takeSnapShot(test, picName)
}
};
return TestReporter;
});
Но я получаю следующую ошибку:
Error: Failed to load module archiver from
D:/Users/sshrestha/Documents/APps/newAuto/advtestautomation/archiver.js
(parent: Automation/ConfigFiles/TestReporter.js)
at ReadFileContext.callback <node_modules\intern\node_modules\dojo\loader.ts:831:119>
at FSReqWrap.readFileAfterOpen [as oncomplete] <fs.js:303:13>
И моя структура папок выглядит следующим образом
Может кто-нибудь, пожалуйста, помогите.