Skip to content

subsequent tasks in multi task don't run their specs #299

@TristanNovo

Description

@TristanNovo

I'm working on updating less.js to use 2.0.3 and have discovered some strange behavior. This happens in 2.0.2 and 2.0.3 but not 2.0.1

When calling a multi task, only the first task will actually run it's specs, and then it will either hang or continue to run the other tasks without actually running any specs.
I've written a small test case that shows the case when it doesn't run subsequent specs.

package.json

{
...
  "devDependencies": {
    "grunt-contrib-jasmine": "^2.0.3",
    "grunt": "^1.0.3"
  }
}

Gruntfile.js

'use strict';

module.exports = function (grunt) {
    grunt.loadNpmTasks('grunt-contrib-jasmine');
    grunt.initConfig({
        jasmine: {
            options: {
                keepRunner: true
            },
            main: {
                options: {
                    specs: 'test.js',
                }
            },
            second: {
                options: {
                    specs: 'test_2.js',
                }
            },
        },
    });
    grunt.registerTask('default', ['jasmine']);
};

test.js

describe('test', function() {
    it('equal test', function() {
        expect(1).toEqual(1);
    });
});

test_2.js (with failing spec)

describe('test', function() {
    it('equal test', function() {
        expect(1).toEqual(2);
    });
});

running grunt --verbose produces this output

Initializing
Command-line options: --verbose

Reading "Gruntfile.js" Gruntfile...OK

Registering Gruntfile tasks.

Registering "grunt-contrib-jasmine" local Npm module tasks.
Reading C:\_test\less_tests\node_modules\grunt-contrib-jasmine\package.json...OK
Parsing C:\_test\less_tests\node_modules\grunt-contrib-jasmine\package.json...OK
Loading "jasmine.js" tasks...OK
+ jasmine
Initializing config...OK
Loading "Gruntfile.js" tasks...OK
+ default

No tasks specified, running default tasks.
Running tasks: default

Running "default" task

Running "jasmine" task

Running "jasmine:main" (jasmine) task
Verifying property jasmine.main exists in config...OK
File: [no files]
Options: version="latest", timeout=10000, styles=[], specs="test.js", helpers=[], vendor=[], polyfills=[], customBootFile=null, tempDir=".grunt/grunt-contrib-jasmine", outfile="_SpecRunner.html", host="", template="C:\\_test\\less_tests\\node_modules\\grunt-contrib-jasmine\\tasks\\jasmine\\templates\\DefaultRunner.tmpl", templateOptions={}, junit={}, ignoreEmpty=false, display="full", summary=false, keepRunner
Reading C:\_test\less_tests\node_modules\grunt-contrib-jasmine\tasks\jasmine\reporters\PuppeteerReporter.js...OK
Writing .grunt\grunt-contrib-jasmine\reporter.js...OK
Reading C:\_test\less_tests\node_modules\grunt-contrib-jasmine\.jasmine\latest\lib\jasmine-core\jasmine.css...OK
Writing .grunt\grunt-contrib-jasmine\jasmine.css...OK
Reading C:\_test\less_tests\node_modules\grunt-contrib-jasmine\.jasmine\latest\lib\jasmine-core\jasmine.js...OK
Writing .grunt\grunt-contrib-jasmine\jasmine.js...OK
Reading C:\_test\less_tests\node_modules\grunt-contrib-jasmine\.jasmine\latest\lib\jasmine-core\jasmine-html.js...OK
Writing .grunt\grunt-contrib-jasmine\jasmine-html.js...OK
Reading C:\_test\less_tests\node_modules\grunt-contrib-jasmine\.jasmine\latest\lib\jasmine-core\json2.js...OK
Writing .grunt\grunt-contrib-jasmine\json2.js...OK
Reading C:\_test\less_tests\node_modules\grunt-contrib-jasmine\.jasmine\latest\lib\jasmine-core\boot.js...OK
Writing .grunt\grunt-contrib-jasmine\boot.js...OK
Reading C:\_test\less_tests\node_modules\grunt-contrib-jasmine\.jasmine\latest\images\jasmine_favicon.png...OK
Writing .grunt\grunt-contrib-jasmine\jasmine_favicon.png...OK
Reading C:\_test\less_tests\node_modules\grunt-contrib-jasmine\tasks\jasmine\templates\DefaultRunner.tmpl...OK
Processing source...OK
Writing _SpecRunner.html...OK

Testing specs with Jasmine/latest via HeadlessChrome/72.0.3582.0
Jasmine Runner Starting...
jasmine.suiteStarted
 test
jasmine.specStarted
   - equal test...jasmine.specDone
   √ equal test
jasmine.suiteDone
jasmine.jasmineDone
Jasmine runner finished

1 spec in 0.016s.
>> 0 failures

Running "jasmine:second" (jasmine) task
Verifying property jasmine.second exists in config...OK
File: [no files]
Options: version="latest", timeout=10000, styles=[], specs="test_2.js", helpers=[], vendor=[], polyfills=[], customBootFile=null, tempDir=".grunt/grunt-contrib-jasmine", outfile="_SpecRunner.html", host="", template="C:\\_test\\less_tests\\node_modules\\grunt-contrib-jasmine\\tasks\\jasmine\\templates\\DefaultRunner.tmpl", templateOptions={}, junit={}, ignoreEmpty=false, display="full", summary=false, keepRunner
Reading C:\_test\less_tests\node_modules\grunt-contrib-jasmine\tasks\jasmine\reporters\PuppeteerReporter.js...OK
Writing .grunt\grunt-contrib-jasmine\reporter.js...OK
Reading C:\_test\less_tests\node_modules\grunt-contrib-jasmine\.jasmine\latest\lib\jasmine-core\jasmine.css...OK
Writing .grunt\grunt-contrib-jasmine\jasmine.css...OK
Reading C:\_test\less_tests\node_modules\grunt-contrib-jasmine\.jasmine\latest\lib\jasmine-core\jasmine.js...OK
Writing .grunt\grunt-contrib-jasmine\jasmine.js...OK
Reading C:\_test\less_tests\node_modules\grunt-contrib-jasmine\.jasmine\latest\lib\jasmine-core\jasmine-html.js...OK
Writing .grunt\grunt-contrib-jasmine\jasmine-html.js...OK
Reading C:\_test\less_tests\node_modules\grunt-contrib-jasmine\.jasmine\latest\lib\jasmine-core\json2.js...OK
Writing .grunt\grunt-contrib-jasmine\json2.js...OK
Reading C:\_test\less_tests\node_modules\grunt-contrib-jasmine\.jasmine\latest\lib\jasmine-core\boot.js...OK
Writing .grunt\grunt-contrib-jasmine\boot.js...OK
Reading C:\_test\less_tests\node_modules\grunt-contrib-jasmine\.jasmine\latest\images\jasmine_favicon.png...OK
Writing .grunt\grunt-contrib-jasmine\jasmine_favicon.png...OK
Reading C:\_test\less_tests\node_modules\grunt-contrib-jasmine\tasks\jasmine\templates\DefaultRunner.tmpl...OK
Processing source...OK
Writing _SpecRunner.html...OK

Testing specs with Jasmine/latest via HeadlessChrome/72.0.3582.0
Jasmine Runner Starting...
>> 0 failures

Done.

as you can see the first task completes no problem but then the second task goes straight from Jasmine Runner Starting... to >> 0 failures even though the spec should fail.

As far as I can tell this is related to the issue I was having trying to update less.js to use the latest version,
and it might have something to do with tasks/jasmine.js:30 and how it is called on tasks/jasmine.js:372. I'm not very familiar with this project so that's as far as I've got.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions