gpt4 book ai didi

javascript - Karma --auto-watch 不再有效

转载 作者:可可西里 更新时间:2023-11-01 01:16:32 25 4
gpt4 key购买 nike

我的 Karma 安装用于自动观看 - 当我保存 .js 文件时,它会重新运行测试。自从我做任何 JavaScript 以来已经有几个月了,现在我再次使用它,自动监视功能不起作用。这是我的 karma.conf:

module.exports = function (config) {
config.set({

// base path that will be used to resolve all patterns (eg. files, exclude)
basePath: '../',


// frameworks to use
// available frameworks: https://npmjs.org/browse/keyword/karma-adapter
frameworks: ['jasmine'],


// list of files / patterns to load in the browser
files: [
'jQuery/jquery-1.10.2.js',
'jasmine/jasmine.js',
'jasmine-jquery/jasmine-jquery.js',
'Angular/angular.js',
'Angular/angular-route.js',
'Angular/angular-mocks.js',
'Angular/angular-animate.min.js',
'Angular/angular-sanitize.min.js',
'Angular/angular-cache.min.js',
'emcommon.js',
'Moment/moment.js',
'ViewModels/Common/*.js',
'ViewModels/Settings/*.js',
'Tests/Common/*.js',
'Tests/Settings/*.js',
],

// list of files to exclude
exclude: [
],


// preprocess matching files before serving them to the browser
// available preprocessors: https://npmjs.org/browse/keyword/karma-preprocessor
preprocessors: {
'../ViewModels/**/*.js': 'coverage'
},


// test results reporter to use
// possible values: 'dots', 'progress'
// available reporters: https://npmjs.org/browse/keyword/karma-reporter
reporters: ['progress', 'coverage'],

coverageReporter: {
type: 'html',
},

// web server port
port: 9876,


// enable / disable colors in the output (reporters and logs)
colors: true,


// level of logging
// possible values: config.LOG_DISABLE || config.LOG_ERROR || config.LOG_WARN || config.LOG_INFO || config.LOG_DEBUG
logLevel: config.LOG_INFO,


// enable / disable watching file and executing tests whenever any file changes
autoWatch: true,
usePolling: true,


// start these browsers
// available browser launchers: https://npmjs.org/browse/keyword/karma-launcher
browsers: ['Chrome'],

// Continuous Integration mode
// if true, Karma captures browsers, runs the tests and exits
singleRun: false
});
};

我已阅读并遵循建议 here .我试过设置 usePolling为真。我使用了三个不同的程序来保存文件(VS、Sublime 和记事本)以排除这种情况。如果我停止 Karma 并重新启动它,它会获取更改并且它们按预期通过/失败,但它在运行时不会看到文件更改。

从 Karma 0.12.7 迁移到 0.13.0 对问题没有影响。

最佳答案

输出在哪里?

首先,我认为使用以下 CLI 选项查看运行的输出会有所帮助:

# add --single-run, or kill the process manually when finished.
karma start karma.conf.js --auto-watch --log-level debug > log.txt

然后粘贴 log.txt的内容到 pastebin .对您的问题进行编辑可能太大了。

一个不同的浏览器,也许?

我也会尝试运行与 Chrome 不同的浏览器, 我不排除这可能是 karma-runner#895 中每个示例的问题原因显示 Chrome作为首选的浏览器(尽管这是一个老问题,并通过它的外观解决)。

用 PhantomJS 和/或 Chrome Canary 试试看,看看能不能解决问题。

和任务执行者一起去吗?

您是否有机会将任务运行器作为本地设置的一部分?
如果是这样,您可以杀死 --auto-watch并在您选择的任务运行器中使用等效的解决方案。
  • gulp-watch
  • gulp-karma
  • grunt-contrib-watch
  • grunt-karma

  • 我们设置 grunt 任务的方式如下:
    karma: {
    options: {
    configFile: 'karma.conf.js'
    },
    watch: {
    background: false,
    singleRun: false
    }
    }

    使用以下 karma.conf 设置:
    module.exports = function(config) {
    config.set({
    frameworks: ['mocha'],
    basePath: '',
    files: [ /** redacted **/ ],
    urlRoot: '/base/app/',
    reporters: ['progress'],
    logLevel: config.LOG_INFO,
    browsers: ['PhantomJS'],
    singleRun: true
    });
    };

    尝试使用 sudo 运行?

    空白板配置

    运行 karma init newconf.js ,然后试一试:
    karma start newconf.js --auto-watch

    我认为看到你的测试的一些输出在这里会很有帮助。最好是一些版本号:
  • Chrome
  • NodeJS
  • karma
  • 测试框架(Mocha/Chai、Jasmine)


  • 编辑#1

    请使用如下所示的 karma.conf:
    module.exports = function (config) {
    config.set({
    basePath: '',
    frameworks: ['jasmine'],
    files: [
    'some_jasmine_spec.js',
    ],
    reporters: ['progress'],
    port: 9000,
    colors: true,
    logLevel: config.LOG_DEBUG,
    autoWatch: true,
    browsers: ['Chrome'],
    singleRun: false
    });
    };
    some_jasmine_spec.js文件看起来像这样:
    describe('dummy_test', function() {
    it('just runs', function() {
    expect(true).to.be.false;
    });
    });

    some_jasmine_spec.js文件在与此剥离 karma.conf 相同的文件夹中,看看它是否会产生不同的结果。

    编辑#2

    我刚刚注意到您的 files 中的最后一行数组没有被读取。
    如果您查看第一个日志文件的输出:
    # The last DEBUG [watcher] entry
    # 27 - [36m17 07 2015 14:35:37.160:DEBUG [watcher]: [39mWatching "c:/Projects/Gazelle - EstateManager/DEV-Container/(9112) ViewDevice/EstateManagerUI/EstateManagerUI/Scripts/Tests/Settings"

    # The last DEBUG [web-server] entry
    # 102 - [36m17 07 2015 14:35:38.321:DEBUG [web-server]: [39mserving (cached): c:/Projects/Gazelle - EstateManager/DEV-Container/(9112) ViewDevice/EstateManagerUI/EstateManagerUI/Scripts/Tests/Settings/viewschedulemodule.tests.js

    因此, ./*/*.js 中没有任何文件。模式正在被读取。

    我会尝试将其更改为 ./**/*.js , 甚至 **/*.js .

    即便如此,如果虚拟 Jasmine 测试与未包含的文件相关,它应该已经完成​​了。

    编辑#3

    这里的想法很少,但是;

    我会尝试更改 basePath../并删除 ../从所有其他文件引用。这更像是对我(发痒的)好奇心的搔痒,而不是“有效”的担忧。但是,嘿,尝试并没有什么坏处。

    编辑#4

    最后的努力;弹出一个终端并运行以下命令(对不起,我在一个基于 UNIX 的系统上 - 我的 MS-DOS 没有达到标准,可以这么说......)。让我们把它全部清理掉,杀掉缓存,重新安装你需要的包,然后再试一次。

    清理/退出
  • $ rm -rf node_modules # clean out your local node modules
  • $ npm cache clean # clean out the npm cache
  • $ npm uninstall karma karma-cli karma-chrome-launcher karma-coverage karma-firefox-launcher karma-ie-launcher karma-jasmine jasmine -g # uninstall assorted karma/jasmine libraries globally

  • 备份
  • $ mv karma.conf.js karma.conf.bak.js # backup your karma.conf

  • 重装
  • $ npm install karma karma-cli karma-chrome-launcher karma-coverage karma-firefox-launcher karma-ie-launcher karma-jasmine jasmine -g # reinstall assorted karma/jasmine libraries globally
  • $ npm install # reinstall your local node modules

  • 重新初始化
  • $ karma init # initialise a new karma.conf.js file
  • 对新的 karma.conf.js 文件
  • 进行尽可能少的修改
  • $ karma start karma.conf.js --auto-watch --log-level debug
  • 可选地,将上述内容通过管道传输到新的 log.txt并上传。
  • 这样我们就可以比较两者,看看有没有什么 真的脱颖而出。

  • 调试

    确保 singleRun设置为 false在新的 karma.conf.js 文件中,然后弹出打开连接的浏览器并转到 http://localhost:9876 .

    按下调试按钮,打开您的开发工具(网络检查器/控制台),并调查重新加载页面时会发生什么。

    如果这没有任何区别,我很茫然。

    关于javascript - Karma --auto-watch 不再有效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31428916/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com