2017-11-09 9 views
-1

파일 시스템 (장치, 파티션) 세부 정보를 읽을 수있는 교차 플랫폼 노드 유틸리티를 구축 중이며 오류가 발생하면 동작을 테스트해야합니다 데이터를 얻기 위해 유틸리티가 실행하는 셸 명령에서.노드 JS 자식 프로세스 실행을 사용하여 Windows에서 오류를 트리거하는 방법

불행히도 dos 또는 PowerShell에 대한 지식이 거의 없으며 오류가 발생하여 오류가 발생하는 배치 명령을 작성하는 방법을 모르겠습니다.

자식 프로세스가 오류를 잡아낼 수 있도록 어떻게 오류를 일괄 적으로 처리 할 수 ​​있습니까? 내가 존재하지 않는 외부 또는 내부 명령을 호출하는 것입니다 cmd를에서 오류가 발생할 수있는 방법을 발견

import os from 'os'; 
import child from 'child_process'; 
import { expect } from 'chai'; 

const cmd = os.platform() === 'win32' 
    // This command should result in throwing an error to exec 
    ? `1>&2 echo 'Echoed Error'\nexit /b 1` 
    // This has the expected behaviour on linux and osx 
    : `>&2 echo 'Echoed Error'; exit 1`; 

expect(child.execSync.bind(child, cmd)).to.throw(); 
child.exec(cmd, (err) => { 
    expect(err).to.be.an.instanceof(Error); 
}); 
+1

[MCVE]를 검토 한 후 게시하십시오. – jwdonahue

+0

예, 당신은 너무 오랫동안 [최소, 완전하고 검증 가능] (https://stackoverflow.com/help/mcve) 질문 –

+0

게시하는 방법을 알고있는 것 같습니다 :) 귀하의 의견을 보내 주셔서 감사합니다 :) 그것은 didn ' 이것이 필요할 것임을 명심하십시오. 나는 줄'1> & 2 echo 'Echoed Error'\ nexit/b 1'가 충분하다고 생각했다. 당신은 지금 당신이 원하는 것을 발견해야합니다. –

답변

0

: 당신이 바이올린을위한

다음은 예제 코드입니다. 따라서 error 또는 iamnotanexistingcommand과 같은 명령은 오류를 발생시켜 재현하려는 내용에 대해 충분합니다.