sfdx force : source : deploy로 실패한 테스트 결과를 쉽게 볼 수있는 단일 라이너
3873 단어 ShellScriptSalesforceSFDX
force:apex:test:run은 테스트 결과를 쉽게 볼 수 있습니다.
디폴트라면 --resultformat human
로 출력해 줍니다. 참고: 명령 참조
$ sfdx force:apex:test:run --tests HogeTest.test -w 10
=== Test Results
TEST NAME OUTCOME MESSAGE RUNTIME (MS)
───────────── ─────── ─────────────────────────────────────────────────── ────────────
HogeTest.test Fail System.AssertException: Assertion Failed: テスト失敗しました 12
Class.HogeTest.test: line 4, column 1
force : source : deploy로 테스트가 실패하면 알려주지 않습니다.
--json
이외에 특히 결과를 출력하는 옵션을 찾을 수 없습니다. 참고: 명령 참조--json
지정하면 매우 긴 결과 JSON이 출력되어 테스트 결과의 위치를 찾는 것이 어렵습니다.force:source:deploy:report
해도 The metadata deploy operation failed.
정도밖에 가르쳐 주지 않습니다.
issue도 서 있었다 htps : // 기주 b. 코 m / 후 r 하지만 t 코 m / c ぃ / 이스에 s / 57
$ sfdx force:source:deploy -p "force-app/main/default/classes/HogeTest.cls" --testlevel RunSpecifiedTests --runtests HogeTest -w 10 --checkonly
Job ID | 0Af1y000002kGUICA2
SOURCE PROGRESS | ████████████████████░░░░░░░░░░░░░░░░░░░░ | 1/2 Files
$ sfdx force:source:deploy:report -i 0Af1y000002kGUICA2
Job ID | 0Af1y000002kGUICA2
SOURCE PROGRESS | ████████████████████░░░░░░░░░░░░░░░░░░░░ | 1/2 Files
ERROR running force:source:deploy:report: The metadata deploy operation failed.
원라이너
--json
결과를 보기 쉽게 가공해 봅니다.
※ force:source:deploy --json
의 결과를 > result.json
라는 파일로 내뿜고 있습니다.
원 라이너라고 말하면서 길기 때문에 보기 쉽게 개행하고 있습니다.
if [ "$?" != "0" ]; then
cat result.json \
| jq -r '.result.details.runTestResult.failures | if type=="array" then .[] else . end | [.name, .methodName, .message, .stackTrace] | @tsv' \
| column -t -s $'\t' \
| grep --color=auto -e '^.*$'
fi
Travis CI의 결과 표시는 다음과 같습니다.
해설
$ sfdx force:apex:test:run --tests HogeTest.test -w 10
=== Test Results
TEST NAME OUTCOME MESSAGE RUNTIME (MS)
───────────── ─────── ─────────────────────────────────────────────────── ────────────
HogeTest.test Fail System.AssertException: Assertion Failed: テスト失敗しました 12
Class.HogeTest.test: line 4, column 1
--json
이외에 특히 결과를 출력하는 옵션을 찾을 수 없습니다. 참고: 명령 참조--json
지정하면 매우 긴 결과 JSON이 출력되어 테스트 결과의 위치를 찾는 것이 어렵습니다.force:source:deploy:report
해도 The metadata deploy operation failed.
정도밖에 가르쳐 주지 않습니다.issue도 서 있었다 htps : // 기주 b. 코 m / 후 r 하지만 t 코 m / c ぃ / 이스에 s / 57
$ sfdx force:source:deploy -p "force-app/main/default/classes/HogeTest.cls" --testlevel RunSpecifiedTests --runtests HogeTest -w 10 --checkonly
Job ID | 0Af1y000002kGUICA2
SOURCE PROGRESS | ████████████████████░░░░░░░░░░░░░░░░░░░░ | 1/2 Files
$ sfdx force:source:deploy:report -i 0Af1y000002kGUICA2
Job ID | 0Af1y000002kGUICA2
SOURCE PROGRESS | ████████████████████░░░░░░░░░░░░░░░░░░░░ | 1/2 Files
ERROR running force:source:deploy:report: The metadata deploy operation failed.
원라이너
--json
결과를 보기 쉽게 가공해 봅니다.
※ force:source:deploy --json
의 결과를 > result.json
라는 파일로 내뿜고 있습니다.
원 라이너라고 말하면서 길기 때문에 보기 쉽게 개행하고 있습니다.
if [ "$?" != "0" ]; then
cat result.json \
| jq -r '.result.details.runTestResult.failures | if type=="array" then .[] else . end | [.name, .methodName, .message, .stackTrace] | @tsv' \
| column -t -s $'\t' \
| grep --color=auto -e '^.*$'
fi
Travis CI의 결과 표시는 다음과 같습니다.
해설
if [ "$?" != "0" ]; then
cat result.json \
| jq -r '.result.details.runTestResult.failures | if type=="array" then .[] else . end | [.name, .methodName, .message, .stackTrace] | @tsv' \
| column -t -s $'\t' \
| grep --color=auto -e '^.*$'
fi
if [ "$?" != "0" ]; then
: 테스트에 성공하면 force:source:deploy
가 종료 코드 0을 반환하기 때문에 성공하면 특별히 아무 작업도 수행하지 않습니다. jq로 결과 json을 장미
.result.details.runTestResult.failures
: 결과의 세부 사항...라고 추적합니다.
if type=="array" then .[] else . end
: 실패가 하나의 경우는 object, 복수의 경우는 배열로 돌아온다고 하는 끔찍한 포맷이므로 형태로 판정해 결과를 장미합니다 [.name, .methodName, .message, .stackTrace]
: 원하는 속성 만 배열로 검색하고 레코드화 @tsv
: 마지막으로 탭으로 구분하여 표준 출력으로 다음 파이프에 연결합니다 참고: htps : // 이 m / 나카 / ms / 272bfd00b7 83d162 3
columns 명령으로 보기 쉽게 정형
column -t -s $'\t'
색칠하기
grep --color=auto -e '^.*$'
: CI 결과에서 눈에 띄도록 오류 결과를 빨간색으로 표시합니다. Reference
이 문제에 관하여(sfdx force : source : deploy로 실패한 테스트 결과를 쉽게 볼 수있는 단일 라이너), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/pomu0325/items/9dee0190e4dae8eb554e텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)