这个错误通常是由于在执行测试时未生成结果文件夹或结果文件引用错误导致的。可以通过在protractor.conf.js中配置结果文件夹并使用正确的路径引用来解决这个问题。以下是一个示例:
// protractor.conf.js
exports.config = { // ... onPrepare: function() { // Set up the test result directory var mkdirp = require('mkdirp'); var fs = require('fs'); var path = require('path');
var resultsDir = path.resolve(__dirname, 'e2e/results');
if (!fs.existsSync(resultsDir)) {
mkdirp.sync(resultsDir);
}
// Set up the test reporter
var Jasmine2HtmlReporter = require('protractor-jasmine2-html-reporter');
jasmine.getEnv().addReporter(new Jasmine2HtmlReporter({
savePath: resultsDir,
screenshotsFolder: 'screenshots',
takeScreenshotsOnlyOnFailures: true
}));
},
// Reference the results directory when saving test results
jasmineNodeOpts: {
showColors: true,
defaultTimeoutInterval: 30000,
print: function() {},
// Only save JSON results (no need to save JUnit XML)
// Also, reference the results directory
// Change the file name to a unique name to avoid collisions
// with other test runs
// (e.g., use the process' start time plus a random number)
// (in this example, we're using '12345' as the random number)
resultJsonOutputFile: ./e2e/results/results.${new Date().getTime()}-12345.json
}
};
参考链接:https://stackoverflow.com/questions/51698842/angular-selenium-e2e-tests-enoent-no-such-file-or-directory-open-results-6482