У меня есть набор для автоматизации тестирования, выполненный на javascript. Я нахожусь в процессе преобразования проекта с javascript в машинописный текст. В исходном проекте структура следующая:
helpers
utilities
salesforce
navigation.js
indices
utilityIndex.js
tests
myExampleTest.js
navigation.js
var files = require('../../../indices/fileIndex.js');
var utility = require('../../../indices/utilityIndex.js);
var pageObjectsSF = require('../../../indices/pageObjectSFIndex.js');
module.exports = {
"NavigateToAccountFromContact": function (browser) {
browser
.click(pageObjectsSF.contact.details.detailsTab.selector, pageObjectsSF.contact.details.detailsTab.type, `Click Details Tab`)
.click(pageObjectsSF.contact.details.accountName.selector, pageObjectsSF.contact.details.accountName.type, `Click Account Name`);
utilities.generic.logging();
}
}
Что было преобразовано в: navigation.ts
import * as files from '../../../indices/fileIndex';
import * as utilities from '../../../indices/utilityIndex';
import * as pageObjectsSF from '../../../indices/pageObjectSFIndex';
export = {
"NavigateToAccountFromContact": function (browser) {
browser
.click(pageObjectsSF.contact.details.detailsTab.selector, pageObjectsSF.contact.details.detailsTab.type, `Click Details Tab`)
.click(pageObjectsSF.contact.details.accountName.selector, pageObjectsSF.contact.details.accountName.type, `Click Account Name`);
utilities.generic.logging();
}
}
УтилитаIndex.js
exports.navigation = require('../helpers/utilities/salesforce/navigation.ts');
exports.dataValidation = require('../helpers/utilities/salesforce/dataValidation');
exports.search = require('../helpers/utilities/salesforce/search');
exports.generic = require('../helpers/utilities/salesforce/generic');
myExampleTest.ts
//Declare File Dependencies
var files = require('../../indices/fileIndex.js');
var utilities = require('../../indices/utilityIndex.js');
var query = require('../../indices/queryIndex.js');
module.exports = {
'@tags': ['Tags'],
'TestName': function (browser) {
//Test Logic Here
}
};
который был преобразован в: myExampleTest.ts
//Declare File Dependencies
import * as files from '../../indices/fileIndex';
import * as utilities from '../../indices/utilityIndex';
import * as query from '../../indices/queryIndex';
export = {
'@tags': ['Tags'],
'TestName': function (browser) {
//Test Logic Here
}
};
Я еще не преобразовал utilityIndex в файл машинописного текста, но когда я пытаюсь запустить файлы, я получаю следующую ошибку:
C:\GitRepos\RegressionTesting\helpers\utilities\salesforce\navigation.ts:1
(function (exports, require, module, __filename, __dirname) { import * as files from '../../../indices/fileIndex';
^^^^^^
SyntaxError: Unexpected token import
at createScript (vm.js:80:10)
at Object.runInThisContext (vm.js:152:10)
at Module._compile (module.js:605:28)
at Object.Module._extensions..js (module.js:652:10)
at Module.load (module.js:560:32)
at tryModuleLoad (module.js:503:12)
at Function.Module._load (module.js:495:3)
at Module.require (module.js:585:17)
at require (internal/module.js:11:18)
at Object.<anonymous> (C:\GitRepos\RegressionTesting\indices\utilityIndex.js:1:84)
Изначально в utilityIndex.js, а не в: exports.navigation = require('../helpers/utilities/salesforce/navigation.ts');
У меня был exports.navigation = require('../helpers/utilities/salesforce/navigation');
но получал Error: Cannot find module 'indices/utilityIndex'



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Вы не можете запускать файлы TypeScript напрямую с помощью Node. Либо используйте tsc, чтобы скомпилировать их в JavaScript, либо используйте среду выполнения, такую как ts-узел.
Оказалось, что у связанного js-файла с «../helpers/utilities/salesforce/navigation.ts» не было правильного пути. Как только я исправил это, проблема была решена. Спасибо
Вы можете либо опустить расширение, либо указать
.js..ts- это ошибка.