VisualStudioCode + Node.js + Mocha(^6.0.0) test + debug run TIPS for "ReferenceError: describe is not defined"

# サマリー
VisualStudioCodeのNode.js Mocha testのデバッグ実行で、`ReferenceError: describe is not defined`のエラーがでる人は、VisualStudioCodeのlounch.jsonの`tdd`を`bdd`に変更するとエラーが解消される。

```lounch.json
{
    "type": "node",
    "request": "launch",
    "name": "Mocha Tests",
    "program": "${workspaceFolder}/node_modules/mocha/bin/_mocha",
    "args": [
        "-u",
        "bdd",
        "--timeout",
        "999999",
        "--colors",
        "${workspaceFolder}/test"
    ],
    "internalConsoleOptions": "openOnSessionStart"
},
```

# 現象
  VisualStudioCodeのNode.js Mocha testをデバッグ実行すると、以下のエラーがでるようになった。

  + 環境
    - VisualStudioCode: 1.32.3
    - mocha: 6.0.2

```
/Users/hoge/.nodebrew/current/bin/node --inspect-brk=16665 node_modules/mocha/bin/_mocha -u tdd --timeout 999999 --colors /Users/hoge/Git/my-project/test 
Debugger listening on ws://127.0.0.1:16665/0cd5be4c-b761-4eb0-b934-0c3d7df7f99b
Debugger attached.
/Users/hoge/Git/my-project/node_modules/yargs/yargs.js:1148
      else throw err
           ^
ReferenceError: describe is not defined
    at Object.<anonymous> (/Users/hoge/Git/my-project/test/index.spec.js:20:1)
    at Module._compile (module.js:652:30)
    at Object.Module._extensions..js (module.js:663:10)
    at Module.load (module.js:565:32)
    at tryModuleLoad (module.js:505:12)
    at Function.Module._load (module.js:497:3)
    at Module.require (module.js:596:17)
    at require (internal/module.js:11:18)
```


# 原因
mocha 6.0.0から、RCファイルがサポートされたり、yargsでオプションを解析するようになった関係で、今まで、たまたま動作していた部分が動かなくなったようです。
　・[add config file support; switch to yargs #3556](https://github.com/mochajs/mocha/pull/3556)

Visual Studio Codeがデフォルトで指定する`--u tdd`は、TDD方式を意味していて、こんな書き方です。

```tdd.js
mocha.setup('tdd');

suite('something', function() {
  setup(function() {
  });

  test('should work', function() {
  });

  teardown(function() {
  });
});
```

一方、[mochaのチュートリアル](https://mochajs.org/)に記載されている書き方はBDD方式で、こんな書き方です。

```bdd.js
mocha.setup('bdd');

describe('something', function() {
  beforeEach(function() {
  });

  it('should work', function() {
  });
});
```

Visual Studio Codeのlounch.jsonに`--u tdd`とある場合は、TDD方式を想定しているため、BDD方式の`describe`に対して `ReferenceError: describe is not defined`のエラーメッセージがでます。

# Mocha version 6.0.0
実行オプションの指定に関する機能拡張がありました。

+ --no-timeouts  
  デバッグ時にタイムアウトしないように指定できるようになりました。  
  今まで、`--timeout 999999`のおまじないを書いていましたが、これの代わりです。  
+ RCファイル
  mochaの実行オプションを設定ファイル(RCファイル)で記載できるようになりました。  
  RCファイルは以下が可能です。
  - .mocharc.js  
  - .mocharc.json  
  - .mocharc.yaml  
  - .mocharc.yml  
    
    ```mocharc.json
    {
      "diff": true,
      "extension": ["js"],
      "opts": "./test/mocha.opts",
      "package": "./package.json",
      "reporter": "spec",
      "slow": 75,
      "timeout": 2000,
      "ui": "bdd"
    }
    ```
  特定のRCファイルを指定して実行したい場合は、`--config /path/to/rc/file`オプションを指定します。  
+ package.json
  設定は、`package.json`にも記載可能です。 

    ```package.json
    "mocha": {
      "diff": true,
      "extension": ["js"],
      "opts": "./test/mocha.opts",
      "package": "./package.json",
      "reporter": "spec",
      "slow": 75,
      "timeout": 2000,
      "ui": "bdd"
    }
    ``` 
  特定の`package.json`を指定して実行したい場合は、`--package /path/to/package.json`オプションを指定します。
+ 設定の優先順位  
  設定は、以下の順に適用されます。
  1. Command-line arguments
  2. RC file
  3. package.json
  4. mocha.opts
  5. Mocha's own defaults
+ 設定の無効化
  `--no-config`や`--no-package`を指定すると設定を無効にできます。