태그 보관물: node.js

node.js

Visual Studio Code를 사용하는 Mocha 중단 점

Visual Studio Code를 사용하여 Mocha 테스트에 중단 점을 추가 할 수 있습니까?

일반적으로 코드를 디버깅 할 때 launch.json을 구성하고 프로그램 속성을 실행할 자바 스크립트 파일로 설정해야합니다. 그래도 Mocha를 위해 이것을 수행하는 방법을 모르겠습니다.



답변

시작 구성으로 이동하여 다른 구성 뒤 또는 사이에 커서를 놓고 ctrlspace를 눌러 현재 유효한 모카 구성을 자동으로 생성 한다는 것을 알고 계셨습니까 ?

나를 위해 완벽하게 잘 작동합니다. 중단 점에서 중지 포함. (나는 또한 다양한 설정 관련 이유로 더 이상하지 않은 이전의 구식이 있습니다.)

VSCode 1.21.1 (2018 년 3 월)부터이 결과는 다음과 같습니다.

{
  "version": "0.2.0",
  "configurations": [
    {
      "name": "Mocha (Test single file)",
      "type": "node",
      "request": "launch",
      "runtimeArgs": [
        "${workspaceRoot}/node_modules/.bin/mocha",
        "--inspect-brk",
        "${relativeFile}",
      ],
      "console": "integratedTerminal",
      "internalConsoleOptions": "neverOpen",
      "port": 9229
    }
}

참고로 : debug-brk 는 더 이상 사용되지 않습니다 (최소 노드> = 버전 8 인 모든 사람에게).


답변

--debug-brk+ Attach 를 사용하지 않거나 전역 mocha 설치에 대한 절대 경로를 지정 하지 않으려면 (launch.json을 버전 제어하에두고 여러 시스템에 여러 개발자가있는 경우 중단됨) mocha를 개발 종속성으로 설치하고 launch.json에 다음을 추가하십시오.

{
  "name": "mocha",
  "type": "node",
  "request": "launch",
  "program": "${workspaceRoot}/node_modules/mocha/bin/_mocha",
  "stopOnEntry": false,
  "args": ["--no-timeouts", "--colors"], //you can specify paths to specific tests here
  "cwd": "${workspaceRoot}",
  "runtimeExecutable": null,
  "env": {
    "NODE_ENV": "testing"
  }
}

F5를 눌러 테스트에서 전체 디버깅을 지원합니다.

--no-timeouts중단 점에서 중지했기 때문에 테스트 시간이 초과 --colors되지 않도록하고, VS Code가 색상을 지원하는지 감지하지 못하더라도 Mocha가 색상을 출력하는지 확인합니다.


답변

또 다른 방법은 --debug-brkmocha 의 명령 줄 옵션과 AttachVisual Studio Code 디버거 의 기본 시작 설정을 사용하는 것입니다.


제안 된 심층 설명 (André 제공)

이것을하기 위해:

다음 명령을 사용하여 명령 줄에서 mocha를 실행합니다.

mocha --debug-brk

이제 VS Code에서 디버그 아이콘을 클릭 한 Attach다음 시작 버튼 옆의 옵션에서 선택 합니다. VS Code에 중단 점을 추가 한 다음 시작을 클릭합니다.


답변

OS X 10.10의 VSCode에서이 작업을 수행했습니다. ./settings/launch.json파일을 이것으로 바꾸십시오 .

{
    "version": "0.1.0",
    "configurations": [
        {
            "name": "Run app.js",
            "type": "node",
            "program": "app.js", // Assuming this is your main app file.
            "stopOnEntry": false,
            "args": [],
            "cwd": ".",
            "runtimeExecutable": null,
            "env": { "NODE_ENV": "production"}
        },
        {
            "name": "Run mocha",
            "type": "node",
            "program": "/Users/myname/myfolder/node_modules/mocha/bin/_mocha",
            "stopOnEntry": false,
            "args": ["test/unit.js"],
            "cwd": ".",
            "runtimeExecutable": null,
            "env": { "NODE_ENV": "production"}
        }
    ]
}

여기 에서 요점으로도 사용할 수 있습니다 .

변경해야하는 키 값은 program이며 _mocha실행 파일 로 설정되어야 하며은 args테스트 파일의 배열이어야합니다.


답변

Mac OS X에서 VS Code (1.8.2)에서 작업하는 방법은 다음과 같습니다.

{
    "name": "Mocha",
    "type": "node",
    "request": "launch",
    "program": "${workspaceRoot}/node_modules/mocha/bin/_mocha",
    "stopOnEntry": false,
    "args": ["--recursive"], //you can specify paths to specific tests here
    "cwd": "${workspaceRoot}",
    "runtimeExecutable": null,
    "env": {
        "NODE_ENV": "testing"
    }
}

Mocha는 npm 모듈 디렉토리에 설치해야합니다.


답변

  1. Debug > Add Configuration...메뉴로 이동
  2. Node.js환경 선택
  3. Mocha Tests표시된 드롭 다운 목록에서 옵션을 선택 합니다.
  4. args속성 의 마지막 항목으로 테스트 파일의 경로를 입력합니다.
  5. 을 추가하다 breakpoint
  6. Debug아이콘을 클릭하십시오
  7. Mocha Tests구성으로 선택
  8. 보도 Start debugging버튼
  9. 🙂

답변

나는 이것을 해결 방법으로 분류하는 방법을 알아 냈습니다 . Visual Studio Code 팀이 이에 대한보다 확실한 솔루션을 제공 할 것으로 기대하지만 그 동안 제가 한 일은 다음과 같습니다.

  1. ./settings/mocha.js실행할 파일 목록으로 인수를 프로그래밍 방식으로 전달하는 mocha를 실행 하는 파일을 만들었습니다 . 여기 에서 전체 파일을 볼 수 있습니다 .
  2. 나는를 실행 발사 설정 만든 ./settings/mocha.js으로 program우리가 인수로 시험에 필요한 파일 / 파일 패턴을 통과를 :

    {
        "name": "Unit tests",
        "type": "node",
        "program": ".settings/mocha.js",
        "stopOnEntry": true,
        "args": ["test/unit/*.js", "test/unit/**/*.js"],
        "cwd": ".",
        "runtimeExecutable": null,
        "env": { }
    }

    전체 launch.json 예제

따라서 이것은 수행하는 것과 동일 mocha test/unit/*.js test/unit/**/*.js하며 이제 mocha 테스트에서 중단 점을 사용할 수 있습니다.