【问题标题】:How do I prevent ENOENT error while running `npm test` in my tfs build?如何在我的 tfs 构建中运行“npm test”时防止 ENOENT 错误?
【发布时间】:2018-03-24 01:33:31
【问题描述】:

我正在尝试在我的 tfs 构建中运行 npm test,但每次我得到一个 ENOENT 错误:

C:\Program Files\nodejs\npm.cmd 运行测试

npm 错误!路径 E:\Agents\agent_work\38\package.json

npm 错误!代码ENOENT

npm 错误!错误号-4058

npm 错误!系统调用打开

npm 错误! enoent ENOENT: 没有这样的文件或目录,打开 'E:\Agents\agent_work\38\package.json'

npm 错误! enoent 这与 npm 找不到文件有关。

我按照this tutorial of Microsoft 设置了我的构建,我还加入了npm cache clean,因为我读到如果你在安装过程中得到 enoent 可能会修复它。

当我在本地运行 npm test 时,它工作正常

以下是我的配置文件。

这是 karma.config.js:

module.exports = function (config) {
    var testWebpackConfig = require('./webpack.test.js');
  config.set({

    basePath: '.',
    frameworks: ['jasmine'],

    plugins: [
        require('karma-jasmine'),
        require('karma-phantomjs-launcher'),
        require('karma-webpack'),
        require('karma-sourcemap-loader'),
        require('karma-jasmine-html-reporter'),
        require('karma-junit-reporter')
    ],

    // list of files / patterns to load in the browser
    files: [
        { pattern: 'spec.bundle.js', watched: false }
    ],

    preprocessors: {
        'spec.bundle.js': ['webpack', 'sourcemap']
    },

    // webpack
    webpack: testWebpackConfig,

    reporters: ['progress', 'kjhtml', 'junit'],
    port: 9876,
    colors: true,
    logLevel: config.LOG_INFO,
    autoWatch: true,
    browsers: ['PhantomJS'],
    singleRun: false,
    concurrency: Infinity,
    junitReport: {
        outputDir: '',
        outputFile: 'test.xml'
    }
  })
}

这是 spec.bundle.js:

import 'core-js';
import 'zone.js/dist/zone';
import 'zone.js/dist/long-stack-trace-zone';
import 'zone.js/dist/proxy.js';
import 'zone.js/dist/sync-test';
import 'zone.js/dist/jasmine-patch';
import 'zone.js/dist/async-test';
import 'zone.js/dist/fake-async-test';

import { getTestBed } from '@angular/core/testing';
import {
    BrowserDynamicTestingModule,
    platformBrowserDynamicTesting
} from '@angular/platform-browser-dynamic/testing';

import 'rxjs';

getTestBed().initTestEnvironment(
    BrowserDynamicTestingModule,
    platformBrowserDynamicTesting()
);

var testContext = require.context('./src', true, /\.spec\.ts/);

function requireAll(requireContext) {
    return requireContext.keys().map(requireContext);
}

var modules = requireAll(testContext);

【问题讨论】:

    标签: angular testing npm tfs build


    【解决方案1】:

    错误信息表明 npm test 命令找不到“package.json”文件。请确保您的 package.json 文件已上传到源代码管理并在构建过程中下载,并且您在构建定义中为 npm 任务配置了 package.json 文件(带有 package.json 的工作文件夹)的正确路径。

    【讨论】:

    • 我没有针对包含业力配置的文件夹,在我定位到它工作的文件夹之后。
    猜你喜欢
    • 2020-02-20
    • 1970-01-01
    • 2019-11-21
    • 2022-11-02
    • 2018-06-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-09-18
    相关资源
    最近更新 更多