모듈 토크:단위 테스트

Module talk

테스트 그룹 순서

이때 테스트 그룹이 랜덤 순서로 페이지에 나타납니다.정의된 순서대로 표시할 수 있는 방법이 있습니까?Stradivarius씨♪ talk ♪ 15:30, 2013년 4월 3일 (UTC) 회신[답장]

제가 알기로는 테스트 프레임워크가 모듈 페이지(Lua source) 자체를 읽지 않는 한 테스트가 정의된 순서를 결정할 수 없습니다.또한 이것이 항상 원하는 행동인지 확실하지 않습니다.항상 알파벳 순서를 사용하고, 숫자를 사용하여 알파벳 순서로 검정 이름을 지정하거나, 순서를 명시적으로 지정할 수 있는 옵션을 제공하는 등 몇 가지 다른 접근 방식이 있습니다.Dcoetzee 2013년 4월 3일 17:09 (UTC) 회신 [회신]
그것들을 알파벳 순으로 배열하는 것이 문제를 해결하는 좋은 방법이 될 것입니다.모듈 토크의 테스트 사례:Delink/테스트 케이스는 알파벳 순으로 나타나지 않습니다. 제가 보기에는 무작위일 뿐입니다.저는 () 쌍들이 찾은 자연스러운 테이블 순서라고 생각합니다. 비록 코드를 시도하고 바꿀 만큼 충분히 잘 알지는 못하지만 말입니다. (그리고 그렇게 하면 다른 사람들의 테스트에 약간의 방해가 될 수도 있습니다.) - Stradivarius♪ talk ♪ 씨, 2013년 4월 3일 (UTC)응답[회답]

호출 결과를 Wikitext로 처리하지 않음

안녕하세요 유닛 테스터들.모듈에서 중첩 테스트에 대한 올바른 형식을 찾지 못했습니다.Delink/테스트 케이스 함수 test_nesting.그걸 어떻게 하는 거죠?제가 원하는 것은 확장된 결과가 확장되지 않은 예상 사례와 비교되는 것입니다.마르틴 훅스트라 (대화) 15:50, 2013년 4월 3일 (UTC) 회신 [회신]

나는 nowiki 옵션을 사용하여 문제를 해결했습니다.옵션이 아직 문서화되어 있지 않아서 시간이 나면 검토해보고 추가할 수도 있습니다.Stradivarius씨♪ talk ♪ 19:10, 2013년 4월 3일 (UTC) 회신 [답장]
nowiki 옵션을 추가해 주셔서 감사합니다.일반적으로 매우 유용했습니다.모듈_talk:좌표/테스트 사례. --Jarect (대화) 18:19, 2013년 12월 13일 (UTC) 회신 [회신]

대체 구현

이 모듈에는 몇 가지 단점이 있습니다.

  • 논리와 프레젠테이션이 함께 혼합되어 있어서 테스트를 다른 형식으로 발표하는 것이 불가능합니다.
  • 결과적으로 디버그 콘솔에서 테스트를 실행할 수 없습니다(테스트를 변경해야 할 때 매우 편리합니다).
  • 실패한 어설션에 대한 라인 번호가 있습니다.
  • 테스트된 코드에서 발생한 오류가 발견되지 않음

저는 hu에서 대체 테스트 모듈을 만들었습니다.Wikipedia에 대한 의견이나 기능 요청을 환영합니다.모듈이 hu에 있습니다.모듈:Homokozó/Tgr/Critunto Unit, 사용 예는 hu:Modul:Homokozó/Tgr/Set/tests(문서는 헝가리어로 되어 있지만 주석과 변수 이름은 영어로 되어 있으며 코드는 xUnit 규칙을 따르므로 이해하는 데 문제가 없습니다.)실패한 주장에서 예외를 던지고, 예외/오류를 던지는 테스트를 기반으로 결과 테이블을 구축한 다음, 어떤 방식으로든 결과를 제시할 수 있습니다. 실제 테스트와 디스플레이 코드를 분리하면 더 유지보수가 가능하고 재사용이 가능하다고 생각합니다. --Tgr (talk) 15:17, 25 May (UTC)Reply [Reply]

@Tgr: 완전히 읽을 시간이 없었습니다. 테스트 사례를 새 모듈로 변환하는 데 많은 노력이 필요합니까? —DJ(대화기여) 20:53, 2013년 6월 4일(UTC)응답[Reply]
모듈을 만들었습니다.유닛 테스트/샌드박스는 현재 논리와 프레젠테이션을 세 곳에서만 혼합합니다.모듈 토크를 만들었습니다.인용/CS1/테스트 사례2: 여전히 작동하고 비교 목적으로 사용할 수 있는지 확인합니다.7.23MB의 메모리를 사용하고 테스트를 처리하는 데 4.933초가 소요되는 테스트 사례와 비교하여 testcase2는 6.91MB의 메모리를 사용하고 테스트를 처리하는 데 3.964초가 소요됩니다.로직과 프레젠테이션을 완전히 분리하면 메모리 설치 공간과 처리 시간을 더 줄일 수 있습니다.단위 테스트에 대한 다른 접근 방식이 더 나을 것이라고 생각하지만, 인용 모듈의 경우와 마찬가지로 현재 테스트를 다시 작성하는 데 약간의 노력이 필요할 수 있습니다. --darklama 15:11, 2013년 6월 5일 (UTC)응답 [응답]

문자열에 예상 텍스트가 포함되어 있는지 테스트합니다.

모듈 토크를 참조하십시오.유닛#으로 스크리본하기문자열에 향상 요청에 대한 예상 텍스트가 포함되어 있는지 테스트합니다. --Derbethtalk 21:41, 2014년 1월 1일 (UTC)Reply[reply]

템플릿과 모듈 비교

템플릿과 모듈을 비교할 때 "=="로 진행하는 것이 잘못된 것 같습니다.템플릿과 모듈은 중요하지 않은 HTML 공백의 수와 유형, HTML 표현(&nbsp 등)이 다를 수 있습니다.이것은 좋은 샘플이라고 생각합니다: 모듈:샌드박스/DTS/테스트 사례.첫 번째 단계에서는 first_difference를 멤버 함수로 만드는 것을 제안합니다.이 멤버 함수가 0을 반환하면 문자열은 동일한 것으로 간주됩니다.이렇게 하면 테스트에서 고유한 방법을 정의할 수 있습니다.두 번째 단계는 미리 생성된 옵션을 제공하는 것입니다.Tsahee (talk) 2014년 1월 19일 20:44 (UTC) 회신 [답장]

값 추가nowiki실제 결과에 스크립트 오류가 없는 경우에만 위키 텍스트를 표시

저는 그것을 만드는 것을 합니다.nowiki옵션은 "오류가 없는 경우"와 같은 문자열을 만드는 값으로 지원합니다.mw.text.nowiki스크립트 오류가 탐지될 수 있는 경우 실제 결과에 적용되지 않습니다.스크립트 오류가 발생하면 위키텍스트는 아무 소용이 없고(오류와 상관없이 동일할 것입니다), 렌더링된 결과를 클릭하여 오류 메시지를 표시할 수 있으므로 수정하기가 더 쉽습니다. --Mark Otaris (talk) 16:42, 2015년 10월 13일 (UTC)Reply [Reply]

{{#선택사항:유닛 테스트/테스트 사례/프레임_test}에서 다른 결과를 제공합니다.

{{#invoke 이유:UnitTests/tests/frame_test}은(는) 직접 호출과 UnitTests 모듈을 통한 호출에 대해 다른 결과를 제공합니까? --Ans (대화) 13:58, 2017년 10월 11일 (UTC)응답 [응답]

사원 양식

모듈: 인용문/CS1은 약 25개의 라이브 템플릿 모듈을 지원합니다.인용/CS1/샌드박스는 동일한 수의 샌드박스 템플릿을 지원합니다.WP를 추가할 수도 있었습니다.TemplateStyles 마크업(<templatestyles src="<name>/styles.css" />) 라이브 템플릿에 25×, 샌드박스에 25×, 하지만 그것은 그저 바보처럼 보였기 때문에 각 모듈은 이것을 사용하여 cs12 템플릿 렌더링의 끝에 템플릿 스타일을 연결합니다(여기서).styles는 해당 CSS 페이지의 이름입니다.):

:확장 태그 ('비공식적인 스타일, '', {src=스타일})}) 

그리고 그것은 잘 작동합니다.

모듈 제외:인용/CS1/테스트 사례.

모든 시험이 실패하는 곳에서 318번의 실패.라이브 모듈과 샌드박스 모듈 사이에는 차이가 있지만 그렇게 많지는 않습니다.

템플릿 스타일 때문에. 왜죠?TemplateStyles는 모든 cs12 템플릿 렌더링 끝에 스트립 마커를 삽입하고 각 스트립 마커에는 고유한 ID 번호가 있기 때문입니다.따라서 이 작업은 항상 실패합니다.

{{#ifeq:{{cite book title=Title}} {{cite book title=Title}} ok FAIL}}
실패하다

둘이서만{{cite book}}템플릿이 동일하게 작성됩니다.다음은 동일한 템플릿의 두 개의 결론입니다. 끝에 있는 스트리머에 주목하십시오.

'"`UNIQ--templatestyles-00000006-QINU`"'<cite class="citation book cs1"></cite> <span class="cs1-visible-error citation-comment"><code class="cs1-code">{{[[Template:cite book cite book]]}}</code>: </span><span class="cs1-visible-error citation-comment">Empty citation ([[Help:CS1 errors#empty_citation help]])</span>
'"`UNIQ--templatestyles-00000008-QINU`"'<cite class="citation book cs1"></cite> <span class="cs1-visible-error citation-comment"><code class="cs1-code">{{[[Template:cite book cite book]]}}</code>: </span><span class="cs1-visible-error citation-comment">Empty citation ([[Help:CS1 errors#empty_citation help]])</span>

이 문제를 해결하기 위해 모듈을 해킹했습니다.유닛 테스트 기능preprocess_equals_preprocess()(가만 호출함preprocess_equals_preprocess_many()) 새로운 것을 받아들입니다.option.templatestyles이 옵션이 다음으로 설정된 경우true코드는 내용을 봅니다.expected그리고 추출합니다.templatestyles스트립 마커 식별자(8자리 16진수).그런 다음 데이터를 덮어씁니다.templatestyles스트립 마커 식별자actual둘 다 동일한 식별자를 가질 수 있습니다.그래야만 합니다.preprocess_equals_preprocess()비교하다actual그에 반대하여expected.

~/styles.css와 비교하여 ~/sandbox/styles.css의 텍스트 변경을 원하는 경우 이 변경은 도움이 되지 않습니다. 그리고 모듈:이 모듈이 실행된 후 스트립 마커가 실제 내용으로 대체되기 때문에 UnitTest는 아마도 잘못된 도구일 것입니다.

이 기능의 기능을 확장하려는 이유가 있을 수 있지만, 그 이유가 무엇인지는 잘 모르겠습니다.예를 들어 다음과 같은 가능성이 있습니다.

none제거하다templatestyles양쪽에서 마커를 제거합니다.actual그리고.expected렌더링에 스타일이 적용되지 않음
actual대체하는templatestyles스트립 마커 식별자expected와 함께templatestyles마커 식별자 제거actual둘 다 ~/style/style.dll을 사용하여 스타일링합니다.

아마도 다른 사람들이 있을 것입니다.

Trapist the monk (talk) 19:27, 2019년 3월 28일 (UTC) 응답 [응답]

잘했어요, 인생이 복잡해지고 있어요!Johnuniq (대화) 2019년 3월 28일 23:14, UTC 답변 [답장]

목차

목차를 생성하는 것은 어떻습니까?Trigenibinion (talk) 2021년 3월 12일 14:54 (UTC) 응답 [응답]

'모듈:전역 사용 안 함'

이 모듈의 일부 기능은 '로컬'로 표시되지 않지만, 그럴 수 있고 (주장할 수 있는) 그래야 합니다. --86.143.105.15 (대화) 10:36, 2022년 1월 27일 (UTC)응답[응답]

테스트를 수행해야 할 때 실패하지 않음

모듈에 대한 테스트 사례를 만들고 있습니다.간단한 설명 및 모듈 가져오기:주석이 달린 링크와 나 자신의 더핑으로 인해 일련의 테스트가 실패했어야 하는 복사 파스타 오타가 몇 개 남았지만 그렇지 않았습니다.오타를 고쳤지만 일부러 하나의 테스트를 실패로 변경했고 실행을 통해 진행되었습니다.{{#invoke:AnnotatedLink/testcases run_tests}}제가 잘못한 것이 있나요, 아니면 이 모듈에 문제가 있나요?Fred Gandt · talk · contribs2023년 1월 27일 09:42 (UTC) Reply [Reply

"위의 test_hello와 같은 테스트 메서드는 'test'로 시작해야 합니다."나는 그 사실을 알고 있었다.Fred Gandt · talk · contribs2023년 1월 27일 09:45 (UTC) 회신 [회신]
출력하지 않는 것이 좋습니다. "모든 테스트에 통과했습니다.테스트가 실행되지 않은 경우Fred Gandt · talk · contribs2023년 1월 27일 11:18 (UTC) 회신 [회신]
알겠습니다. 일반적으로 진행된 검사의 총량도 포함시켰습니다.에이단 9382(talk) 2023년 1월 27일 11:49 (UTC) 회신 [회신]
매우 훌륭합니다; 감사합니다 😊Fred Gandt · talk · contribs2023년 1월 27일 13:01 (UTC) 회신 [회신]

nowiki 옵션에 세 개의 상태 허용

현재 다음과 같은 것으로 나타납니다.nowiki부울 옵션입니다. 두 가지를 모두 표시할 수 있는 세 번째 옵션을 가질 수 있습니까?<nowiki>...</nowiki>그리고 분석된 결과?물론 이것이 바람직한 경우에는 모든 테스트를 두 배로 늘릴 수 있지만, 1) 서로 가까운 곳에서 끝나지 않을 수도 있고, 2) 비효율적일 수도 있습니다.제안:{nowiki = 2}(수학적으로 좋고 쉬운 수학) 세 번째 상태를 나타냅니다.Fred Gandt · talk · contribs2023년 1월 27일 20:36 (UTC) 회신 [회신]

코드를 쉽게 처리할 수 있도록, 그리고 내가 정확한 == 검사 대신 그 옵션들을 그냥 "진실" 검사로 유지하고 싶다는 사실(유일한 이유는:=1문서에서 아마도 그것은 타이핑보다 짧기 때문일 것입니다.=true), 분리된 것 같은 것을 합니다.nowikiplus또는combined 옵션이 더 좋게 들립니까?이것을 추가하는 것이 5개의 다른 기능에 동일한 코드를 붙여넣는 것을 의미하는 것이 아니라 할 수 있도록 모듈을 약간 표준화해야 할 것입니다(출력에 배치하는 방법을 생각해야 할 것입니다).에이단 93820(talk) 09:37, 2023년 1월 28일 (UTC) 회신 [회신]
좋아요!하나의 옵션만 고려할 수 있는 사소한 편리함에 앞서 코드의 유지관리 가능성을 확실히 생각해 보십시오.개인적으로; 제 생각에는.combined더 낫습니다.배려해 주셔서 감사합니다 😊Fred Gandt · talk · contribs2023년 1월 28일 09:46 (UTC) 회신 [회신]
@Fred Gandt: 저는 이것에 대한 초기 작업을 할 수 있었습니다 (현재 주요 기능을 가지고 있습니다).preprocess_equals(_many)그리고.preprocess_equals_preprocess(_many)샌드박스의 새로운 시스템 아이디어로 실행) - 제가 드린 형식이 테스트 케이스에서 괜찮은가요?모든 것이 제대로 작동하지 않는 한, 더 복잡한 기능 변환 작업을 시작하고 싶지 않습니다.다음을 변경하여 테스트할 수 있습니다.require('Module:UnitTests')로.require('Module:UnitTests/sandbox')및 지정combined대신에nowiki 에이단 9382(talk) 2023년 1월 28일 14:41 (UTC) 회신 [답장]
정말; 정말 멋져 보여요!테이블 구성이 매우 깔끔합니다.당신의 모든 노력이 저 이상의 사람들에게 감사하기를 바라지만, 제가 감명받았다는 것을 확신하세요.원시 마크업을 보는 것은 기술적 분석에는 좋지만, 결과를 보는 것은 문제를 신속하게 감지하는 데는 매우 유용합니다.그런 식으로 그들을 나란히 두는 것(잘 극복하고는 있지만 같은 것)은 삶의 질 향상입니다.감사합니다 😊Fred Gandt · talk · contribs2023년 1월 28일 16:07 (UTC) 회신 [회신]

실패한 테스트를 맨 위에 함께 표시

또 다른 제안은 실패한 모든 테스트를 결과 맨 위에 표시하는 것입니다.이는 여러 가지 방법으로 달성될 수 있으며 코드에 더 친숙한 사용자가 어떤 접근 방식이 가장 좋은지 정확하게 결정하는 데 가장 적합할 수 있습니다.사용자로서는 두 섹션(실패한 섹션의 맨 위와 통과한 테스트의 다음 섹션)을 보는 것이 이상적입니다.결과가 대체되지 않는 한 섹션 깊이는 중요하지 않아야 합니다(하지만 누가 그렇게 하겠습니까?). 전체 로트는 후세를 위한 표준 레벨 2 섹션 아래에 배치될 수 있으므로 레벨 3 섹션은 괜찮을 것입니다.상태가 알려지면 결과를 적절한 섹션으로 전환하는 것은 사소한 일이어야 합니다.저는 지금 좀 바쁘지만, 필요하다면 제가 해결하겠습니다.)Fred Gandt · talk · contribs2023년 1월 28일 09:24 (UTC) Reply [Reply

저도 샌드박스에서 이것을 이론화해 보겠습니다.에이단 93820(talk) 09:37, 2023년 1월 28일 (UTC) 회신 [회신]
위키 러브 염소를 준비해드리겠습니다!진심으로; 다시 한번 당신의 배려에 감사드립니다 ❤Fred Gandt · talk · contribs2023년 1월 28일 09:46 (UTC) 회신 [회신]
몇몇 야생의 노란 배경들이 나타났습니다 👀 😉Fred Gandt · talk · contribs2023년 1월 28일 16:13 (UTC) 회신 [회신]
네, 제가 그것을 구현한 것을 잊었습니다.preprocess_equals_preprocess에만 실패한 테스트가 주황색/노란색으로 강조 표시되어 더 쉽게 발견할 수 있는 기능이 있었습니다. 더 많은 기능에 강조 표시를 적용하기 위해 샌드박스에서 테스트를 실행하기로 결정했지만 그렇게 했다는 것을 완전히 잊어버렸습니다.저는 아마 그것을 선택적인 논쟁으로 만들 것입니다.#invoke:(아마도 highlight=약간 비슷한. differs_at=).
( 호출 옵션으로 변경됨 - Aidan 9382 16:43, 2023년 1월 28일(UTC)))답글[답글]
아, 그리고 저는 현재 위에서 실패한 결과와 성공한 결과를 분할하는 작업을 하고 있습니다. 하지만 중간에 실패하면 다중 테스트를 수행하는 방법을 생각해야 할 것입니다. (그들이 지금 너무 잘 분할되었는지는 모르겠지만, 두고 봅시다.)에이단 9382(talk) 2023년 1월 28일 16:32 (UTC) 회신 [답장]
얼마나 복잡한지 잘 이해하고 충분히 이해합니다. 이러한 편리한 기능 요청을 서두를 필요도 없고 심지어 필요도 없습니다.작업하는 동안 좋은 하루 보내시는 것을 잊지 마세요.Fred Gandt · talk · contribs2023년 1월 28일 16:44 (UTC) 회신 [회신]
좋아요, 헤더로 분할하는 것은 구현하지 않기로 결정했습니다. 위치 레이아웃, 특히 한 번의 실행으로 여러 번 검사하는 기능을 사용하는 것은 제가 생각하는 것보다 조금 복잡하고 까다롭습니다.이와 관련하여 오류를 찾는 데 하이라이트 기능이 충분히 도움이 되기를 바랍니다.다른 모든 것에 대해서는, 제가 한가해지면 곧 샌드박스 버전에서 라이브 버전으로 이동할 것이며, 문서 페이지도 반드시 업데이트할 것입니다(새 항목과 이미 존재하는 일부 항목이 모두 누락됨).에이단 9382(talk) 2023년 1월 28일 18:56 (UTC) 회신 [회신]
알겠어.너무 많은 노력에 불편을 겪지 않으셨기를 바라며, 다시 말씀드리지만, 정말 감사드립니다.작은 도우미 스크립트를 만들었습니다. moveFailedModule테스트ToTop.js.를 테스트하면 로드 시 모든 고장이 맨 위로 이동합니다.그것은 아주 간단하고 추가 자격이 필요할 수 있습니다. 표에 다음과 같은 것이 포함되어 있어도 괜찮겠습니까?class="wikitable module-unit-tests-result"그래서 대본이 좀 더 구체적일 수 있습니까?제가 직접 가서 꽂을 뻔했지만, 조금 무례할 수도 있다고 생각했습니다.여러 번의 호출 결과가 있는 테이블 세트를 선택하는 스크립트가 있어야 합니다.Fred Gandt · talk · contribs2023년 1월 29일 01:51 (UTC) 회신 [회신]
제가 이 일을 하는 데 어려움을 겪었다고 걱정하지 마세요. 코딩은 저의 큰 취미이고 저는 이런 것들을 고치는 것을 즐깁니다.먼저 테이블 헤더에 클래스를 추가하고 호출했습니다.unit-tests-result 직접 수업을 추가해도 실례가 되지 않았을 것 같아요, 간단한 사소한 개선사항이고 기존 레이아웃에 문제가 되지 않아 완전히 괜찮아요.에이단 93820(talk) 06:07, 2023년 1월 29일 (UTC) 회신 [회신]
다시 한번 감사드립니다 😊 무슨 말인지 알겠어요; 저도 코딩을 좋아해요.언젠가 잘 할 수 있는 날이 왔으면 좋겠어요.Fred Gandt · talk · contribs2023년 1월 29일 07:48 (UTC) 회신 [회신]

모든 스트립 마커에 대한 ID 수정

@Pppery Hello, 당신이 제 편집을 되돌린 것을 알아챘습니다.합격에 실패해야 하는 시험의 예를 공유해 주시겠습니까?감사합니다. – Brandon XLF (대화) 16:34, 2023년 5월 25일 (UTC) 응답 [응답]

이것을 주목하게 된 사례는 모듈 토크였습니다.YouTubeSubscribers/testcase이지만, AFAIK는 preprocess_equals를 사용하여 불평등한 문자열을 비교하는 모든 테스트가 버그를 트리거해야 합니다.Pppery it has begun...* 2023년 5월 25일 16:37, UTC 답변 [답장]
저는 버그가 수정되기를 바라며 예상했던 것에 대한 스트리핑을 다시 구현했습니다(예상했던 것이 실수로 실제와 교체되어 그 자체와 동일한지 확인하게 되었습니다).에이단 9382(talk) 2023년 5월 25일 17:04 (UTC) 회신 [회신]
오, 잘 못 알아들었어요, 고마워요! – Brandon XLF (대화) 23:17, 2023년 5월 25일 (UTC) 응답 [응답]