karma-runner / karma-runner/karma

Passed --grep option persists across test runs

Open
#2,819 1 comment 2 reactions 0 assignees View on GitHub
type: bug
Dominant language
JavaScript
Stars
12k
Forks
1.7k
PR merge metrics
No merged PRs in 30d

Description

Let's consider the following project
```json
// package.json
{
"devDependencies": {
"karma": "^1.7.0",
"karma-jasmine": "^1.1.0",
"karma-phantomjs-launcher": "^1.0.4",
"jasmine-core": "^2.7.0"
}
}
```
```javascript
// karma.conf.js
module.exports = function(config) {
config.set({
frameworks: ['jasmine'],
files: ['test.js'],
reporters: ['progress'],
port: 9876,
browsers: ['PhantomJS'],
singleRun: false
})
};
```

```javascript
// test.js
describe("suite1", function () {
it("test1", function () {
});
});

describe("suite2", function () {
it("test2", function () {
});
});
```

1. Start karma server
```
./node_modules/karma/bin/karma start
```
2. Run all karma tests in another terminal tab:
```
./node_modules/karma/bin/karma run
PhantomJS 2.1.1 (Linux 0.0.0): Executed 2 of 2 SUCCESS (0.039 secs / 0.001 secs)
```
Expected result

3. Run only `suite1`:
```
./node_modules/karma/bin/karma run -- '--grep=suite1'
PhantomJS 2.1.1 (Linux 0.0.0): Executed 1 of 2 (skipped 1) SUCCESS (0.038 secs / 0 secs)
```
Expected result

4. Run all karma tests again:
```
./node_modules/karma/bin/karma run
PhantomJS 2.1.1 (Linux 0.0.0): Executed 1 of 2 (skipped 1) SUCCESS (0.038 secs / 0.001 secs)
```
Unexpected result: only `suite1` is run again.

Originally reported in karma-jasmine https://github.com/karma-runner/karma-jasmine/issues/186 and in karma-mocha https://github.com/karma-runner/karma-mocha/issues/196.

As pointed out by @maksimr, it's actually caused by modifying shared `config.client.args` in https://github.com/karma-runner/karma/blob/master/lib/middleware/runner.js#L51-L60

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.