Nunit: ํ…Œ์ŠคํŠธ ๊ฒฐ๊ณผ์— ํŒŒ์ผ ์ฒจ๋ถ€

์— ๋งŒ๋“  2016๋…„ 07์›” 15์ผ  ยท  34์ฝ”๋ฉ˜ํŠธ  ยท  ์ถœ์ฒ˜: nunit/nunit

์•ˆ๋…•ํ•˜์„ธ์š” ์—ฌ๋Ÿฌ๋ถ„,
์ €๋Š” NUnit์„ ์ฒ˜์Œ ์‚ฌ์šฉํ•˜๊ณ  ํ…Œ์ŠคํŠธ ํƒ์ƒ‰๊ธฐ์—์„œ ์ถœ๋ ฅ์— ์ฒจ๋ถ€ ํŒŒ์ผ์„ ์ถ”๊ฐ€ํ•˜๋Š” ๋ฐฉ๋ฒ•์ด ๊ถ๊ธˆํ•ฉ๋‹ˆ๋‹ค.
๋‹จ์œ„ ํ…Œ์ŠคํŠธ์—๋Š” ์ด๋ฅผ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ๋Š” AddResultFile์„ ํ˜ธ์ถœํ•˜๋Š” TestContext ํด๋ž˜์Šค์˜ ๋ฉ”์„œ๋“œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.
๋‚˜๋ฅผ ๋„์šธ ์ˆ˜ ์žˆ๋Š” ์‚ฌ๋žŒ์ด ์žˆ์Šต๋‹ˆ๊นŒ?

๊ฐ์‚ฌ ํ•ด์š”,
์žฅ

Epic done feature normal

๊ฐ€์žฅ ์œ ์šฉํ•œ ๋Œ“๊ธ€

์ด ๊ธฐ๋Šฅ์€ ๋ฐ˜๋“œ์‹œ ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
NUnit ๋ฐ Selenium์„ ์‚ฌ์šฉํ•˜์—ฌ ์ž๋™ํ™”๋œ ๋™์ž‘ ํ…Œ์ŠคํŠธ๋ฅผ ์‹คํ–‰ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ํ…Œ์ŠคํŠธ๊ฐ€ ์‹คํŒจํ•˜๋ฉด ํ…Œ์ŠคํŠธ ๊ฒฐ๊ณผ์— ๋ธŒ๋ผ์šฐ์ €์˜ ์Šคํฌ๋ฆฐ์ƒท์„ ์ฒจ๋ถ€ํ•˜๋Š” ๊ฒƒ์„ ์ข‹์•„ํ•ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ํ…Œ์ŠคํŠธ๋ฅผ ์ˆ˜์ •ํ•˜๋Š” ๋ฐ ํฐ ๋„์›€์ด ๋ฉ๋‹ˆ๋‹ค.
์ด๋ฅผ ์œ„ํ•ด Microsoft์˜ ํ…Œ์ŠคํŠธ ํ”„๋ ˆ์ž„์›Œํฌ๋ฅผ ์‚ฌ์šฉํ•ด์•ผ ํ–ˆ์ง€๋งŒ NUnit(์–ด์…ˆ๋ธ”๋ฆฌ ๋˜๋Š” ํด๋ž˜์Šค ์ˆ˜์ค€์˜ ์†์„ฑ, ์ผ๋ฐ˜ ํ…Œ์ŠคํŠธ ํด๋ž˜์Šค...)๋ณด๋‹ค ๊ฐ•๋ ฅํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ์šฐ๋ฆฌ๋Š” NUnit์—์„œ ์ด ๊ธฐ๋Šฅ์„ ๊ธฐ๋Œ€ํ•ฉ๋‹ˆ๋‹ค.

๋ชจ๋“  34 ๋Œ“๊ธ€

์–ธ๊ธ‰ํ•œ ๋ฐฉ๋ฒ•์€ Microsoft ํ…Œ์ŠคํŠธ ํ”„๋ ˆ์ž„์›Œํฌ์˜ TestContext ํด๋ž˜์Šค์˜ ์ผ๋ถ€์ž…๋‹ˆ๋‹ค. NUnit์—๋„ ๊ฐ™์€ ์ด๋ฆ„์˜ ํด๋ž˜์Šค๊ฐ€ ์žˆ์ง€๋งŒ MsTest ํด๋ž˜์Šค์™€ ๊ด€๋ จ์ด ์—†์œผ๋ฉฐ ์ด๋Ÿฌํ•œ ๋ฉ”์„œ๋“œ๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค. NUnit์—๋Š” ์ถœ๋ ฅ์— ํŒŒ์ผ์„ ์ฒจ๋ถ€ํ•˜๋Š” ๊ธฐ๋Šฅ์ด ์—†์Šต๋‹ˆ๋‹ค.

์ฐฐ๋ฆฌ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค.
๊ทธ๋Ÿฌ๋‚˜ AddResultFile ๋ฉ”์†Œ๋“œ๋Š” ๋ฏธ๋ž˜์— NUnit์— ์ถ”๊ฐ€๋ฉ๋‹ˆ๊นŒ?
์ด ๋ฐฉ๋ฒ•์€ ์ •๋ง ๋„์›€์ด ๋ฉ๋‹ˆ๋‹ค.

ํ˜„์žฌ๋กœ์„œ๋Š” ๊ณ„ํš์ด ์—†์Šต๋‹ˆ๋‹ค. ์ด ๋ฌธ์ œ๋ฅผ ๊ทธ๋Ÿฌํ•œ ๊ธฐ๋Šฅ์— ๋Œ€ํ•œ ์š”์ฒญ์œผ๋กœ ๋ณ€๊ฒฝํ•˜๊ณ  ์‹ถ๋‹ค๋ฉด ๊ทธ๋ ‡๊ฒŒ ํ•˜๊ณ  ๋‹ค์‹œ ์—ด ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ทธ๋ ‡๋‹ค๋ฉด ์–ด๋–ป๊ฒŒ ์ž‘๋™ํ•˜๋Š”์ง€ ์ž์„ธํžˆ ์„ค๋ช…ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ํŒŒ์ผ์€ ์–ด๋–ป๊ฒŒ ์ƒ์„ฑ๋˜๊ณ  ์–ด๋””์— ์ €์žฅ๋˜๋Š”์ง€ ๋“ฑ์ž…๋‹ˆ๋‹ค. NUnit์ด ์‹ค์ œ๋กœ ํŒŒ์ผ์„ ์ƒ์„ฑํ•˜๊ฑฐ๋‚˜ ๋‹จ์ˆœํžˆ ํŒŒ์ผ์— ๋Œ€ํ•œ ์ฐธ์กฐ๋ฅผ ์œ ์ง€ํ•˜๋„๋ก ์š”์ฒญํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๊นŒ?

๋ฌผ๋ก  ์šฐ๋ฆฌ๋Š” ์•„์ด๋””์–ด๋ฅผ ๋ฐ›์•„๋“ค์ด๊ณ  ์šฐ์„  ์ˆœ์œ„๋ฅผ ์ •ํ•˜๊ณ  ์ถœ์‹œ ์ผ์ •์„ ์žก์•„์•ผ ํ–ˆ์Šต๋‹ˆ๋‹ค.

Charlie๋‹˜ ๋‹ต๋ณ€ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค.
๊ทธ ๋ฐฉ๋ฒ•์ด NUnit์— ์ถ”๊ฐ€๋˜๋ฉด ์ข‹์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค.
Microsoft์˜ ํ…Œ์ŠคํŠธ ํ”„๋ ˆ์ž„์›Œํฌ์— ์žˆ๋Š” TestContext ํด๋ž˜์Šค์˜ AddResultFile ๋ฉ”์„œ๋“œ์ฒ˜๋Ÿผ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค.
ํ…Œ์ŠคํŠธ ๊ฒฐ๊ณผ(ํŒŒ์ผ html ํ…Œ์ŠคํŠธ ๊ฒฐ๊ณผ ๋˜๋Š” ์Šคํฌ๋ฆฐ์ƒท)๋ฅผ VS์˜ ํ…Œ์ŠคํŠธ ํƒ์ƒ‰๊ธฐ์— ์žˆ๋Š” ํ…Œ์ŠคํŠธ ์ถœ๋ ฅ์— ์—ฐ๊ฒฐํ•˜๋Š” ๊ฒƒ๊ณผ ๊ฐ™์€ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์•„๋ž˜์™€ ๊ฐ™์ด ์Šคํฌ๋ฆฐ์ƒท์„ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

screenshot

์•„์ด๋””์–ด ์ฃผ์…”์„œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค. ๋‹ค์‹œ ์—ด๊ฒ ์Šต๋‹ˆ๋‹ค.

๊ทธ๋Ÿฌ๋‚˜ ๋” ๋‚˜์•„๊ฐ€๋ ค๋ฉด ์–ด๋Œ‘ํ„ฐ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ NUnit ์ž์ฒด์—์„œ ์ž‘๋™ํ•˜๋Š” ๋ฐฉ์‹์„ ํŒŒ์•…ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ €๋Š” ์ด๊ฒƒ์„ ์•„์ด๋””์–ด๋กœ ํ‘œ์‹œํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋Š” ๋ฏธ๋ž˜์˜ ๊ธฐ๋Šฅ์œผ๋กœ ๊ฐ„์ฃผํ•˜๊ธฐ์— ์ถฉ๋ถ„ํžˆ ์ •์˜๋˜์ง€ ์•Š์€ ๊ฒƒ์„ ์šฐ๋ฆฌ๊ฐ€ ๋ถ€๋ฅด๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์•„๋งˆ๋„ ๋‹ค๋ฅธ ์‚ฌ๋žŒ๋“ค์ด ์ œ์•ˆ์„ ํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๊ณ ๋ คํ•ด์•ผ ํ•  ์‚ฌํ•ญ:

  • ์ด๊ฒƒ์ด XML ๊ฒฐ๊ณผ์—์„œ ์–ด๋–ป๊ฒŒ ๋ณด์ผ ๊ฒƒ์ธ๊ฐ€?
  • ๊ฒฐ๊ณผ์™€ ์ฒจ๋ถ€ ํŒŒ์ผ์ด ํ•จ๊ป˜ ์œ ์ง€๋˜๋Š” ๋ฐฉ์‹์œผ๋กœ ์ด ๋ชจ๋“  ๊ฒƒ์„ ํŒจํ‚ค์ง•ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ?
  • NUnit ์ฝ˜์†”์€ ๋ฌด์—‡์„ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ?
  • NUnit GUI๊ฐ€ ์–ด๋–ค ์‹์œผ๋กœ๋“  ํ‘œ์‹œํ• ๊นŒ์š”?

์ด ๊ธฐ๋Šฅ์€ ๋ฐ˜๋“œ์‹œ ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
NUnit ๋ฐ Selenium์„ ์‚ฌ์šฉํ•˜์—ฌ ์ž๋™ํ™”๋œ ๋™์ž‘ ํ…Œ์ŠคํŠธ๋ฅผ ์‹คํ–‰ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ํ…Œ์ŠคํŠธ๊ฐ€ ์‹คํŒจํ•˜๋ฉด ํ…Œ์ŠคํŠธ ๊ฒฐ๊ณผ์— ๋ธŒ๋ผ์šฐ์ €์˜ ์Šคํฌ๋ฆฐ์ƒท์„ ์ฒจ๋ถ€ํ•˜๋Š” ๊ฒƒ์„ ์ข‹์•„ํ•ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ํ…Œ์ŠคํŠธ๋ฅผ ์ˆ˜์ •ํ•˜๋Š” ๋ฐ ํฐ ๋„์›€์ด ๋ฉ๋‹ˆ๋‹ค.
์ด๋ฅผ ์œ„ํ•ด Microsoft์˜ ํ…Œ์ŠคํŠธ ํ”„๋ ˆ์ž„์›Œํฌ๋ฅผ ์‚ฌ์šฉํ•ด์•ผ ํ–ˆ์ง€๋งŒ NUnit(์–ด์…ˆ๋ธ”๋ฆฌ ๋˜๋Š” ํด๋ž˜์Šค ์ˆ˜์ค€์˜ ์†์„ฑ, ์ผ๋ฐ˜ ํ…Œ์ŠคํŠธ ํด๋ž˜์Šค...)๋ณด๋‹ค ๊ฐ•๋ ฅํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ์šฐ๋ฆฌ๋Š” NUnit์—์„œ ์ด ๊ธฐ๋Šฅ์„ ๊ธฐ๋Œ€ํ•ฉ๋‹ˆ๋‹ค.

์•„์ด๋””์–ด๋ณด๋‹ค ํ™•๊ณ ํ•œ ๋””์ž์ธ์ด ํ•„์š”ํ•œ ๊ธฐ๋Šฅ์œผ๋กœ ๋ฐ”๊พธ๊ฒ ์Šต๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๋Š” ์—ฌ์ „ํžˆ ์ด์ „ ์˜๊ฒฌ์— ๋‚˜์—ด๋œ ์งˆ๋ฌธ์„ ํ•ด๊ฒฐํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

๋‚˜๋Š” ๊ทธ๊ฒƒ์ด xml์—์„œ ํŒŒ์ผ์„ ์ง๋ ฌํ™”ํ•˜๊ฑฐ๋‚˜ ๊ทธ ์™ธ์— ์ฐธ์กฐ ๋””๋ ‰ํ† ๋ฆฌ๋ฅผ ์œ ์ง€ํ•˜๊ณ  ์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ํ•˜๋‚˜๋Š” ๋ฐฉ๋Œ€ํ•œ xml, ์ผ๋ฐ˜์ ์ธ ์†๋„ ์ €ํ•˜ ๋ฐ ํŠน์ • ์ธํ„ฐํ”„๋ฆฌํ„ฐ๊ฐ€ ํ•„์š”ํ•œ ํŒŒ์ผ๋กœ ์ด์–ด์ง€๋ฉฐ, ๋‹ค๋ฅธ ํ•˜๋‚˜๋Š” ํŒŒ์ผ์ด ๊ฒฐ๊ณผ์—์„œ ๋ถ„๋ฆฌ๋˜๊ณ  ์ฐธ์กฐ๊ฐ€ ์†์ƒ๋  ๊ฐ€๋Šฅ์„ฑ์œผ๋กœ ์ด์–ด์ง‘๋‹ˆ๋‹ค.

์–ด๋Š ๊ฒƒ์ด ๋” ์ž‘์€ ์•…์ž…๋‹ˆ๊นŒ? ์ „์ž์˜ ๊ฒฝ์šฐ ๋ชจ๋“  ๊ฒƒ์„ ํŒจํ‚ค์ง€๋กœ ์œ ์ง€ํ•˜๋Š” ๊ฒƒ์˜ ์ด์ ๋ณด๋‹ค ๊ณ ํ†ต์ด ๋” ํด ๊ฒƒ์ด๋ฉฐ 'ํฌ๋ง์ ์œผ๋กœ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ' ์ƒ๋Œ€ ๋งํฌ๊ฐ€ ์žˆ์œผ๋ฉด ์ถฉ๋ถ„ํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

  • NUnit ์ฝ˜์†”์€ ๋ฌด์—‡์„ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ?
  • NUnit GUI๊ฐ€ ์–ด๋–ค ์‹์œผ๋กœ๋“  ํ‘œ์‹œํ• ๊นŒ์š”?

GUI์˜ ๊ฒฝ์šฐ ์œ„์˜ ์ธํ„ฐํŽ˜์ด์Šค์™€ ๊ฐ™์€ ๊ฒƒ์ด ์ฒจ๋ถ€ ํŒŒ์ผ์— ๋Œ€ํ•œ ํ•˜์ดํผ๋งํฌ๋งŒ ์žˆ์œผ๋ฉด ์ถฉ๋ถ„ํ•ด ๋ณด์ž…๋‹ˆ๋‹ค. ์ฝ˜์†” imo๋Š” ์‹คํŒจํ•œ ํ…Œ์ŠคํŠธ ๋ฉ”์‹œ์ง€์—์„œ ์‚ฌ์šฉ์ž์—๊ฒŒ ํŒŒ์ผ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๊ณ  ํŒŒ์ผ์˜ ์œ„์น˜๋ฅผ โ€‹โ€‹์•Œ๋ ค์•ผ ํ•ฉ๋‹ˆ๋‹ค.

๋””์ž์ธ์ด ์™„์„ฑ ๋˜๋ฉด ๋ˆ„๊ตฐ๊ฐ€ PR์„ ์ œ์ถœํ•ด์•ผ ํ•œ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

MSTest๊ฐ€ ํŒŒ์ผ์„ ์ €์žฅํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์‚ดํŽด๋ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. Visual Studio ํ™•์žฅ์—๋Š” ๋“œ๋ผ์ด๋ธŒ์˜ ํŒŒ์ผ์— ๋Œ€ํ•œ ๋งํฌ๊ฐ€ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.

XML์˜ ์ฐธ์กฐ๊ฐ€ ๊ฐ€์•ผ ํ•  ๊ธธ์ธ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. NUnit์˜ ๊ฒฝ์šฐ ๋…ผ๋ฆฌ์  ์ดˆ๊ธฐ ์œ„์น˜๋Š” XML์ด ๊ธฐ๋ณธ์ ์œผ๋กœ ์ด๋™ํ•˜๋Š” ์ž‘์—… ๋””๋ ‰ํ„ฐ๋ฆฌ์ž…๋‹ˆ๋‹ค. ๊ทธ๊ฒƒ์€ ์œ„์˜ ์ฒ˜์Œ ๋‘ ๊ฐ€์ง€ ์‚ฌํ•ญ์„ ํ•ด๊ฒฐํ•ฉ๋‹ˆ๋‹ค.

๋‚ด ๋‹ค๋ฅธ ์š”์ ์— ๋Œ€๋‹ตํ•˜๊ธฐ:

  • ์ฝ˜์†”์€ ๊ฒฐ๊ณผ์™€ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ๊ฒฝ๋กœ์™€ ํ•จ๊ป˜ ์ฒจ๋ถ€ ํŒŒ์ผ์„ ๋‚˜์—ดํ•˜๋Š” ๊ฒƒ ์ด์ƒ์„ ์ˆ˜ํ–‰ํ•˜์ง€ ์•Š์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค.
  • GUI์—๋Š” ์ฒจ๋ถ€ ํŒŒ์ผ์„ ๋‚˜์—ดํ•˜๋Š” ์ผ์ข…์˜ ๋ฉ”๋‰ด ๋˜๋Š” ํŒจ๋„์ด ์žˆ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํŠน์ • ํŒŒ์ผ ํ˜•์‹์— ๋Œ€ํ•ด ๊ธฐ๋ณธ ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์ด ์ •์˜๋œ ๊ฒฝ์šฐ ์ด๋ฅผ ํ‘œ์‹œํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ •์ƒ์ ์ธ ์šฐ์„  ์ˆœ์œ„๋กœ ์˜ฌ๋ฆฌ๋Š” ์ชฝ์œผ๋กœ ๊ธฐ์šธ๊ณ  ์‹ถ์€ ์ข‹์€ ๊ธฐ๋Šฅ์ธ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

@rprouse Gallio๊ฐ€ ์ฒจ๋ถ€ ํŒŒ์ผ์„ ์ฒ˜๋ฆฌํ•œ ๋ฐฉ๋ฒ•์„ ๊ธฐ์–ตํ•˜์‹ญ๋‹ˆ๊นŒ?

์–ดํƒœ์น˜๋จผํŠธ ์š”์†Œ๋Š” ์†์„ฑ ๋ฐ ์š”์†Œ ์ธก๋ฉด์—์„œ ๋ฌด์—‡์„ ํฌํ•จํ•ด์•ผ ํ•ฉ๋‹ˆ๊นŒ? ์ด ๊ฐ™์€?

<attachments>
    <attachment  description="Final screen shot">ScreenShot.jpg</attachment>
    ...
</attachments>

๋‚˜๋Š” ๊ทธ๊ฒƒ์ด ๊ทธ๊ฒƒ์„ ์ƒ์‚ฐํ•œ ํ…Œ์ŠคํŠธ์˜ ์ž์‹์ด๋ผ๊ณ  ๊ฐ€์ •ํ•˜๊ณ  ์žˆ์œผ๋ฏ€๋กœ ์šฐ๋ฆฌ๋Š” ๊ทธ ์ •๋ณด๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์‚ฌ์šฉ์ž๋Š” ์—ฌ๋Ÿฌ ์Šคํฌ๋ฆฐ์ƒท์„ ํฌํ•จํ•  ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ ์„ค๋ช…์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ๋‹ค๋ฅธ ๊ฑด ์—†๋‚˜์š”?

๋ฌด์–ธ๊ฐ€๋ฅผ ์ฒจ๋ถ€ํ•˜๋Š” ๊ตฌ๋ฌธ์€ ๋ฌด์—‡์ž…๋‹ˆ๊นŒ? TestContext๋ฅผ ์‚ฌ์šฉํ•ด์•ผ ํ•ฉ๋‹ˆ๊นŒ? ์ฒจ๋ถ€ ํŒŒ์ผ์ด ์‹คํŒจ ์‹œ ์ž๋™์œผ๋กœ ์ƒ์„ฑ๋˜๋„๋ก ์–ด์„ค์…˜๊ณผ ์—ฐ๊ฒฐํ•˜๋Š” ๋ฐฉ๋ฒ•์ด ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๊นŒ?

๋ˆ„๊ตฐ๊ฐ€ ์ด๊ฒƒ์— ๋Œ€ํ•œ ์‚ฌ์–‘์„ ์ž‘์„ฑํ•˜๊ณ  ์‹ถ์Šต๋‹ˆ๊นŒ?

์ •์ƒ์ ์ธ ์šฐ์„  ์ˆœ์œ„๋กœ ์˜ฌ๋ฆฌ๋Š” ์ชฝ์œผ๋กœ ๊ธฐ์šธ๊ณ  ์‹ถ์€ ์ข‹์€ ๊ธฐ๋Šฅ์ธ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

๐Ÿ‘

@rprouse Gallio๊ฐ€ ์ฒจ๋ถ€ ํŒŒ์ผ์„ ์ฒ˜๋ฆฌํ•œ ๋ฐฉ๋ฒ•์„ ๊ธฐ์–ตํ•˜์‹ญ๋‹ˆ๊นŒ?

์•„๋‹ˆ์š”, ์ฒจ๋ถ€ ํŒŒ์ผ์„ ์‚ฌ์šฉํ•œ ์ ์ด ์—†์Šต๋‹ˆ๋‹ค. ๋‚˜๋Š” ๋‹น์‹ ์˜ XML ํ˜•์‹์„ ์ข‹์•„ํ•ฉ๋‹ˆ๋‹ค. ๊ฐœ์ธ์ ์œผ๋กœ TestContext๊ฐ€ ๋” ๊ฐ„๋‹จํ•œ ๊ฒฝ๋กœ์ด๋ฏ€๋กœ ์ฒจ๋ถ€ ํŒŒ์ผ์„ ์ถ”๊ฐ€ํ•˜๋Š” ๊ฒƒ์œผ๋กœ ์‹œ์ž‘ํ•ด์•ผ ํ•œ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฐ ๋‹ค์Œ ์ด๋ฅผ Asserts๋กœ ํ™•์žฅํ• ์ง€ ์—ฌ๋ถ€๋ฅผ ํ‰๊ฐ€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ทธ๋ž˜์„œ TestContext.CurrentContext.AddAttachment ?

(string path) ๋ฐ (string path, string description) ๋Œ€ํ•œ ์˜ค๋ฒ„๋กœ๋“œ๊ฐ€ ์žˆ์Šต๋‹ˆ๊นŒ?

์–ด์ฉŒ๋ฉด ์šฐ๋ฆฌ๋Š” ์ด๋ฏธ ์‚ฌ์–‘์„ ๊ฐ€์ง€๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค!

์ด ๊ธฐ๋Šฅ์˜ ์šฐ์„ ์ˆœ์œ„๋ฅผ ๋†’์—ฌ์ฃผ์„ธ์š”. ํ…Œ์ŠคํŠธ ๊ฒฐ๊ณผ ์š”์•ฝ์— UI ์Šคํฌ๋ฆฐ์ƒท์„ ์ฒจ๋ถ€ํ•˜๋ฉด ๋งค์šฐ ์œ ์šฉํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค. VSTS(Visual Studio Team Services) ๋‚ด์˜ ๋นŒ๋“œ ๊ฒฐ๊ณผ์—์„œ ์ด๋Ÿฌํ•œ ์ฒจ๋ถ€ ํŒŒ์ผ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ?
์ •๋ง ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค ์ฐฐ๋ฆฌ

์ข‹์€ ๊ธฐ๋Šฅ์ด๋ผ๊ณ  ์ƒ๊ฐํ•˜๋ฉฐ TeamCity์—์„œ ์ฒจ๋ถ€ ํŒŒ์ผ์„ ๋นŒ๋“œ ์•„ํ‹ฐํŒฉํŠธ๋กœ ๊ฒŒ์‹œํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

@rprouse ๊ฐ€ ์ด๋ฏธ ์ œ์•ˆํ–ˆ๊ธฐ ๋•Œ๋ฌธ์— ์ผ๋ฐ˜ ์šฐ์„  ์ˆœ์œ„๋กœ

์•„๋ฌด๋„ ์ด๊ฒƒ์„ ์žŠ์ง€ ์•Š์•˜์œผ๋ฉด ํ•ฉ๋‹ˆ๋‹ค. ๋งค์šฐ ์œ ์šฉํ•œ ๊ธฐ๋Šฅ์ด ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์ด์ „ ๋Œ“๊ธ€์ด ๋ชจ๋“  ๋””์ž์ธ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ–ˆ๋‹ค๊ณ  ์ƒ๊ฐํ•˜๋ฏ€๋กœ ๋””์ž์ธ ๋ ˆ์ด๋ธ”์„ ์ œ๊ฑฐํ•˜๊ณ  ๊ตฌํ˜„ ๋ฌธ์ œ๋ฅผ ๋ฐฑ๋กœ๊ทธ์— ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค.

์šฐ๋ฆฌ๋Š” ๋งŽ์€ ์ผ๋“ค์ด ์ผ์–ด๋‚˜๊ณ  ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ์ด๊ฒƒ์„ ์žŠ์–ด๋ฒ„๋ฆฐ ๊ฒƒ์ด ์•„๋‹™๋‹ˆ๋‹ค. ์ด์ „ ์˜๊ฒฌ์—์„œ ์–ธ๊ธ‰ํ–ˆ๋“ฏ์ด ์ด์™€ ๊ฐ™์€ ์ผ๋ฐ˜์ ์ธ ์šฐ์„  ์ˆœ์œ„ ํ•ญ๋ชฉ์€ ๋ฆด๋ฆฌ์Šค ๊ณ„ํš์˜ ์ผ๋ถ€๋กœ ์˜ˆ์ •๋˜์–ด ์žˆ์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์–ด๋–ค ํŒ€์›์ด๋‚˜ ์™ธ๋ถ€ ๊ธฐ์—ฌ์ž๊ฐ€ ๊ทธ ์ผ์„ ๋งก์„ ๋งŒํผ ์ถฉ๋ถ„ํžˆ ๊ด€์‹ฌ์„ ๊ฐ–๊ฒŒ ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋ฐ”๋ผ๊ฑด๋Œ€, ๊ทธ๊ฒƒ์„ ๋ฐฑ๋กœ๊ทธ์— ์ถ”๊ฐ€ํ•˜๋ฉด ๋ˆ„๊ตฐ๊ฐ€๊ฐ€ ํ•œ ๊ฑธ์Œ ๋” ๋‚˜์•„๊ฐ€๋„๋ก ๋™๊ธฐ๋ฅผ ๋ถ€์—ฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋‹น์‹ ์˜ ๋Šฅ๋ ฅ์— ๋”ฐ๋ผ ๋‹น์‹ ์ด ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค! ๐Ÿ˜„

ํ›Œ๋ฅญํ•œ ๊ธฐ๋Šฅ! ๋Œ€๋‹จํžˆ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค. ๋ˆ„๊ตฐ๊ฐ€๊ฐ€ ์ด๊ฒƒ์„ ๊ณง ๊ตฌํ˜„ํ•˜๊ธฐ๋ฅผ ๋ฐ”๋ž๋‹ˆ๋‹ค ๐Ÿ˜„

#2152์—์„œ ์ด๊ฒƒ์„ ๊ตฌํ˜„ํ•˜๋Š” ๋ฐ ํ•„์š”ํ•œ ํ”„๋ ˆ์ž„์›Œํฌ ๊ธฐ๋Šฅ์— ๋Œ€ํ•œ PR์„ ์ˆ˜ํ–‰ํ–ˆ์Šต๋‹ˆ๋‹ค. ์ด ๋ฌธ์ œ๋ฅผ ์ถ”์ ํ•˜๋Š” ์‚ฌ๋žŒ์ด ๋ช‡ ๋ช… ์žˆ๋‹ค๋Š” ์ ์„ ๊ฐ์•ˆํ•  ๋•Œ, ์ €๋Š” ์ด ๋ฌธ์ œ๋ฅผ Epic์œผ๋กœ ์ „ํ™˜ํ•˜๊ณ  ์—ฌ๊ธฐ์„œ ๋ฌด์—‡์„ ํ• ์ง€ ๊ฒฐ์ •ํ•˜๋Š” ๋Œ€๋กœ ๋Ÿฌ๋„ˆ ์ง€์›์„ ์ถ”์ ํ•  ๊ณ„ํš์ž…๋‹ˆ๋‹ค.

์ œ ์ƒ๊ฐ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

VS ์–ด๋Œ‘ํ„ฐ
์ด๊ฒƒ์€ MSTest์— ์žˆ๋Š” ๊ธฐ๋Šฅ์ด๋ฏ€๋กœ VS ์–ด๋Œ‘ํ„ฐ ํ”„๋ ˆ์ž„์›Œํฌ์—๋Š” ์ด๋ฏธ ์ฒจ๋ถ€ ํŒŒ์ผ์„ ํ‘œ์‹œํ•˜๋Š” ๊ธฐ๋Šฅ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์—ฐ๊ฒฐํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์ถ”์ ํ•˜๊ธฐ๋งŒ ํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค. ๐Ÿ™‚

์ฝ˜์†”/NUnitLite
๋‚˜๋Š” ์—ฌ๊ธฐ์—์„œ ์ƒ๊ฐ์ด ์—‡๊ฐˆ๋ฆฐ๋‹ค. ์˜ค๋ฅ˜/๊ฒฝ๊ณ  ํ…Œ์ŠคํŠธ์—์„œ๋Š” ์ฒจ๋ถ€ ํŒŒ์ผ์˜ ํŒŒ์ผ ๊ฒฝ๋กœ/์„ค๋ช…์„ ๊ฒฐ๊ณผ์™€ ํ•จ๊ป˜ ํ‘œ์‹œํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค. ํ†ต๊ณผ๋œ ํ…Œ์ŠคํŠธ์— ๋Œ€ํ•œ ์ฒจ๋ถ€ ํŒŒ์ผ์€ ์–ด๋–ป์Šต๋‹ˆ๊นŒ? ์ด๋ฅผ ํ‘œ์‹œํ•˜๊ธฐ ์œ„ํ•ด '์ •๋ณด' ์ถœ๋ ฅ์ด ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๊นŒ? ๋”ฐ๋ผ์„œ ์ฝ˜์†” ์‹คํ–‰์ž๋Š” ์ •๋ณด/๊ฒฝ๊ณ /์˜ค๋ฅ˜์˜ ์„ธ ๊ฐ€์ง€ ์œ ํ˜•์˜ ์ถœ๋ ฅ์„ ๊ฐ–๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

GUI/์ž๋งˆ๋ฆฐ
์ด ๋‘ ๊ฐ€์ง€ ๋ชจ๋‘ ๊ฒฐ๊ตญ์—๋Š” ์ด๋ฅผ ์ง€์›ํ•ด์•ผ ํ•˜์ง€๋งŒ ์šฐ์„  ์ˆœ์œ„๊ฐ€ ๋†’์ง€ ์•Š๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ๋ฌธ์ œ๋ฅผ ๋งŒ๋“ค์ง€๋งŒ ์ด ์—ํ”ฝ์— ์ฒจ๋ถ€ํ•˜์ง€๋Š” ์•Š์Šต๋‹ˆ๋‹ค. ์ˆ˜์š”/์‹œ๊ฐ„์ด ํ—ˆ๋ฝํ•  ๋•Œ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

ํŒ€์‹œํ‹ฐ
@NikolayPianikov - ๋‹น์‹ ์€ ๋‹น์‹ ์ด ์ด๊ฒƒ์— ๊ด€์‹ฌ์ด ์žˆ๋‹ค๊ณ  ๋งํ–ˆ์Šต๋‹ˆ๋‹ค. #2152๋ฅผ ์ถ”์ ํ•  ๊ฐ€์น˜๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ๐Ÿ™‚

์œ„์˜ ๋ชจ๋“  ๊ฒƒ์— ๋Œ€ํ•œ ์ƒ๊ฐ? @nunit/framework-team ? ๋‹ค์Œ ๋‹จ๊ณ„๊ฐ€ ๊ฒฐ์ •๋˜๋ฉด ๊ฐœ๋ณ„ ๋ฌธ์ œ๋ฅผ ๋งŒ๋“ค๊ฒ ์Šต๋‹ˆ๋‹ค.

@ChrisMaddock ๋ฌธ์ œ๋Š” ๋””์ž์ธ ๋ฌธ์ œ์ผ ์ˆ˜๋„ ์žˆ์œผ๋ฏ€๋กœ "gui์—์„œ ์ฒจ๋ถ€ ํŒŒ์ผ์„ ์ง€์›ํ•˜๋Š” ๋ฐฉ๋ฒ• ํŒŒ์•…"์ด๋ผ๋Š” ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํ™•์‹คํ•˜์ง€ ์•Š์€ ๋‹ค๋ฅธ ๋ฌธ์ œ๋„ ๋งˆ์ฐฌ๊ฐ€์ง€์ž…๋‹ˆ๋‹ค.

์ฝ˜์†” ๋Ÿฌ๋„ˆ์˜ ๊ฒฝ์šฐ ํ˜„์žฌ ๋ชจ๋“  ํ…Œ์ŠคํŠธ๋ฅผ ํ‘œ์‹œํ•˜์ง€๋Š” ์•Š์ง€๋งŒ ์™„๋ฃŒํ•  ์ˆ˜๋Š” ์žˆ์Šต๋‹ˆ๋‹ค. ๋ชจ๋“  ์„ธ๋ถ€ ๋ณด๊ณ ์„œ๋Š” ํ™•์žฅ ๋˜๋Š” ์‚ฌ์šฉ์ž ์ง€์ • XSL ๋ณ€ํ™˜์œผ๋กœ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํ›„์ž๋Š” XSL ์ฝ”๋”ฉ์„ ํ•˜๊ณ ์ž ํ•˜๋Š” ์‚ฌ๋žŒ์ด๋ผ๋ฉด ๋ˆ„๊ตฌ๋‚˜ ์‰ฝ๊ฒŒ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๐Ÿ˜„ ๊ธฐ์—ฌํ•œ ๋ณ€ํ˜•์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

NUnitLite๋Š” ๋งค์šฐ ๊ฐ€๋ณ๊ฒŒ ์œ ์ง€ํ•˜๊ธฐ๋ฅผ ์›ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๊นŒ๋‹ค๋กญ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์‚ฌ์šฉ์ž๊ฐ€ ์ง€๋Šฅ์ ์ธ ๋ฐฉ์‹์œผ๋กœ ์ฒจ๋ถ€ ํŒŒ์ผ์˜ ์ด๋ฆ„์„ ์ง€์ •ํ•˜๊ณ  ๋ชจ๋‘ ๋™์ผํ•œ ๋””๋ ‰ํ† ๋ฆฌ์— ์ €์žฅํ•˜๋ฏ€๋กœ ์ฐพ๊ธฐ๊ฐ€ ์ถฉ๋ถ„ํžˆ ์‰ฌ์›Œ์•ผ ํ•œ๋‹ค๊ณ  ๊ฐ€์ •ํ•ฉ๋‹ˆ๋‹ค. ์‚ฌ์‹ค, ๊ทธ๊ฒƒ์€ ์ฝ˜์†” ๋Ÿฌ๋„ˆ์—๊ฒŒ๋„ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค.
gui์— ๋Œ€ํ•œ ์ž์—ฐ์Šค๋Ÿฌ์šด ๊ฒƒ์€ ํ…Œ์ŠคํŠธ ๊ฒฐ๊ณผ์— ๋Œ€ํ•œ ๋‹ค๋ฅธ ๋ชจ๋“  ๊ฒƒ๊ณผ ํ•จ๊ป˜ ์ฒจ๋ถ€ ํŒŒ์ผ์˜ ์ด๋ฆ„๊ณผ ์„ค๋ช…์„ ํ‘œ์‹œํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์‚ฌ์šฉ์ž๊ฐ€ ํŒŒ์ผ์„ ์—ด ์ˆ˜ ์žˆ๋Š” ์ ์ ˆํ•œ ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์ด ์„ค์น˜๋˜์–ด ์žˆ๋Š” ๊ฒฝ์šฐ ๋งํฌ๋ฅผ ๋งŒ๋“ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ฒจ๋ถ€ ํŒŒ์ผ์ด ์žˆ์œผ๋ฉด ์–ด๋Œ‘ํ„ฐ์—์„œ Visual Studio๋กœ ์ „๋‹ฌํ•˜๋Š” ๊ฒฐ๊ณผ์— ์ถ”๊ฐ€ํ•˜๋Š” ๊ฒƒ์ด ๋งค์šฐ ์‰ฝ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

๋‹ค์Œ ๋‹จ๊ณ„๋ฅผ ๋‹ค๋ฃจ๊ธฐ ์œ„ํ•ด https://github.com/nunit/docs/issues/197 ๋ฐ https://github.com/nunit/nunit3-vs-adapter/issues/332 ๋ฅผ ๋งŒ๋“ค์—ˆ์Šต๋‹ˆ๋‹ค.

๋Ÿฌ๋„ˆ ์ง€์›๊ณผ ๊ด€๋ จํ•˜์—ฌ - ์ด์— ๋Œ€ํ•œ ์œ ์ผํ•œ ํ˜„์žฌ ์š”์ฒญ์ด VS ์–ด๋Œ‘ํ„ฐ์™€์˜ ํ†ตํ•ฉ์ธ ๊ฒฝ์šฐ ํ˜„์žฌ๋กœ์„œ๋Š” ๊ฑฐ๊ธฐ์—์„œ ๊ตฌํ˜„ํ•˜๋ ค๋Š” ๊ฒฝํ–ฅ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ๊ทธ๋ž˜ํ”ฝ ๋Ÿฌ๋„ˆ์— ๋” ์ž˜ ๋งž๋Š” ๊ธฐ๋Šฅ์ด๋ฉฐ cli ๋ฐ ๊ธฐํƒ€ ๋Ÿฌ๋„ˆ ์ง€์›์€ ์‚ฌ๋žŒ๋“ค์ด ํ•„์š”๋กœ ํ•˜๋Š” ๊ฒฝ์šฐ ํ•ญ์ƒ ์ถ”๊ฐ€๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

@ChrisMaddock ์ฝ˜์†” ๋Ÿฌ๋„ˆ์˜ ์ฒจ๋ถ€ ํŒŒ์ผ ์ง€์›์„ ๋ณด๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค.

@kdubau - ์™„๋ฒฝํ•œ ํƒ€์ด๋ฐ! ๐Ÿ˜„ ๊ทธ๋ ‡๋‹ค๋ฉด ์–ด๋–ค ๋ชจ์Šต์„ ํ•˜๊ณ  ์‹ถ๋‚˜์š”? ๊ท€ํ•˜์˜ ์‚ฌ์šฉ ์‚ฌ๋ก€๋Š” ๋ฌด์—‡์ž…๋‹ˆ๊นŒ?

ํ…Œ์ŠคํŠธ ์‹คํŒจ/๊ฒฝ๊ณ , ์„ค๋ช… ๋ฐ ํŒŒ์ผ ๊ฒฝ๋กœ๋ฅผ ๋‚˜์—ดํ•˜๊ธฐ ์œ„ํ•ด '์ฒจ๋ถ€ ํŒŒ์ผ' ํ…์ŠคํŠธ ๋ธ”๋ก์„ ์ถ”๊ฐ€ํ•˜๋Š” ๊ฒƒ์„ ์ƒ์ƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋‚ด๊ฐ€ ์ด๊ฒƒ์„ ํ•˜์ง€ ์•Š๋Š” ๊ฒƒ์— ๋Œ€ํ•ด ํ† ๋ก ํ•œ ํ•œ ๊ฐ€์ง€ ์ด์œ ๋Š” ๋งŽ์€ ์‚ฌ์šฉ์ž๊ฐ€ ํ•ด๋‹น ํŒŒ์ผ์„ ์ฐพ๊ธฐ ์œ„ํ•ด ์‰˜์—์„œ ํŒŒ์ผ ๊ฒฝ๋กœ๋ฅผ ๋ณต์‚ฌ/๋ถ™์—ฌ๋„ฃ๊ธฐ๋ฅผ ์›ํ•  ๊ฒƒ์ด๋ผ๊ณ  ํ™•์‹ ํ•˜์ง€ ์•Š์•˜๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. ๋™์˜ํ•˜์ง€ ์•Š์œผ์‹œ๊ฒ ์Šต๋‹ˆ๊นŒ?

๊ณ ๋ คํ•ด์•ผ ํ•  ๋˜ ๋‹ค๋ฅธ ๋ฌธ์ œ๋Š” ์ฝ˜์†”์ด ํ˜„์žฌ ๋ชจ๋“  ํ…Œ์ŠคํŠธ๊ฐ€ ์•„๋‹Œ ์‹คํŒจํ•œ/๊ฒฝ๊ณ ๋œ ํ…Œ์ŠคํŠธ๋งŒ ํ‘œ์‹œํ•œ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ฒจ๋ถ€ ํ…Œ์ŠคํŠธ๋ฅผ ํ†ต๊ณผํ•œ ๋ชจ๋“  ๊ฒƒ์„ ๋ณด์—ฌ์ฃผ๋Š” ์„ธ ๋ฒˆ์งธ ๊ฒฐ๊ณผ ๋ชฉ๋ก('์ •๋ณด'?)์„ ๋งŒ๋“ค์–ด์•ผ ํ•ฉ๋‹ˆ๊นŒ?

์ฝ˜์†” ๋Ÿฌ๋„ˆ๊ฐ€ ์‹คํŒจํ•œ ํ…Œ์ŠคํŠธ์— ๋Œ€ํ•œ ์ฒจ๋ถ€ ํŒŒ์ผ๋งŒ ํ‘œ์‹œํ•˜๋Š” ๊ฒƒ์ด ์‹ค์ œ๋กœ๋Š” ๊ดœ์ฐฎ์„ ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ์ฝ˜์†” ์‹คํ–‰์—์„œ ํฅ๋ฏธ๋กœ์šด ๊ฒƒ์€ ์ด๊ฒƒ์ด ์ „๋ถ€์ผ ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. ๋‚˜๋Š” ์—ฌ๊ธฐ์— ์‹คํŒจ์— ๋Œ€ํ•œ ๊ด€๋ จ ๋กœ๊ทธ ํŒŒ์ผ์„ ์ƒ์ƒํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

@kdubau ์—ฌ๊ธฐ์—์„œ ์„ค๋ช…ํ•˜๊ธฐ ๋ณด๋‹ค๋Š” nunit-console repo์—์„œ ์ƒˆ ๋ฌธ์ œ๋ฅผ ๋งŒ๋“œ๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค.

@ChrisMaddock @CharliePoole ์—ฌ๊ธฐ์„œ ๋งฅ๋ฝ์„ ์ž˜๋ชป ์ดํ•ดํ–ˆ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ถœ๋ ฅ XML์—์„œ ์ฒจ๋ถ€ ํŒŒ์ผ์„ ์ฐธ์กฐํ•˜๋Š” ๋ฐ๋งŒ ๊ด€์‹ฌ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์‹ค์ œ๋กœ ์ฝ˜์†” ์ถœ๋ ฅ์— ์ฒจ๋ถ€ ํŒŒ์ผ ์ •๋ณด๋ฅผ ํ‘œ์‹œํ•  ํ•„์š”๋Š” ์—†์Šต๋‹ˆ๋‹ค. ๋‚ด ์‚ฌ์šฉ ์‚ฌ๋ก€๋Š” ๋‚ด CI ์‹œ์Šคํ…œ(Visual Studio Team Services)์ด XML์— ๋‚˜์—ด๋œ ์ฒจ๋ถ€ ํŒŒ์ผ์„ ๋นŒ๋“œ ์•„ํ‹ฐํŒฉํŠธ๋กœ ์—…๋กœ๋“œํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค(๋”ฐ๋ผ์„œ ๋กœ์ปฌ ๋””์Šคํฌ์˜ ํŒŒ์ผ์— ๋Œ€ํ•œ ์ฐธ์กฐ๋งŒ ํ•„์š”ํ•จ).

์ฝ˜์†” ๋Ÿฌ๋„ˆ๋ฅผ ํ†ตํ•ด ํ…Œ์ŠคํŠธ๋ฅผ ์‹คํ–‰ํ•˜๋ฉด XML์— ์ฒจ๋ถ€ ํŒŒ์ผ์ด ์—†์„๊นŒ ๊ฑฑ์ •ํ–ˆ์ง€๋งŒ ๋” ์ฝ์–ด๋ณด๋‹ˆ ์ด๊ฒƒ์ด ๋ฌธ์ œ๊ฐ€ ์•„๋‹Œ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ํ‹€๋ฆฌ๋ฉด ์ง€์ ํ•ด์ฃผ์„ธ์š” :)

@kdubau - ๋งž์Šต๋‹ˆ๋‹ค. ๐Ÿ™‚ #2152๊ฐ€ ๋ฐฉ๊ธˆ ๋ณ‘ํ•ฉ๋˜์–ด ๊ฒฐ๊ณผ xml์˜ ์ฒจ๋ถ€ ํŒŒ์ผ์„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค. ๋ชจ๋“  ๊ฒƒ์ด ๊ณ„ํš๋Œ€๋กœ ์ง„ํ–‰๋œ๋‹ค๋ฉด ๋‹ค์Œ ์ฃผ์— ์ถœ์‹œ๋˜๋Š” NUnit 3.7์˜ ์ผ๋ถ€๊ฐ€ ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๋งž์Šต๋‹ˆ๋‹ค... ์ฝ˜์†”์—์„œ "์ง€์›"์ด ํ•„์š”ํ•˜๋‹ค๋ฉด ํ”„๋ ˆ์ž„์›Œํฌ์—์„œ ๊ฐ€์ ธ์˜จ XML์„ ๋‹จ์ˆœํžˆ ์ €์žฅํ•˜๋Š” ๊ฒƒ ์ด์ƒ์˜ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. nunit3 ์–ด๋Œ‘ํ„ฐ์˜ ๊ฒฝ์šฐ @ChrisMaddock ์ด ์ด๊ฒƒ์ด ์˜๋ฏธํ•˜๋Š” ๋ฐ”๋ฅผ ์ •์˜ํ•˜๊ณ  ์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

์•ˆ๋…•ํ•˜์„ธ์š” ์—ฌ๋Ÿฌ๋ถ„, ์ด ์ž‘์—…์ด ์™„๋ฃŒ๋˜์—ˆ๊ฑฐ๋‚˜ ๋” ๋ณด๋ฅ˜ ์ค‘์ž…๋‹ˆ๊นŒ? ๊ณต๊ฐœ๋œ ๋ฌธ์ œ๋‚˜ ๊ด€๋ จ PR์„ ์ฐพ์„ ์ˆ˜ ์—†์—ˆ์Šต๋‹ˆ๋‹ค.

๋ˆ„๋ฝ๋œ ๊ฒƒ์ด ์žˆ์ง€๋งŒ ํ…Œ์ŠคํŠธ ์ฒจ๋ถ€ ํŒŒ์ผ์ด ์˜ˆ์ƒ๋Œ€๋กœ VS ํ…Œ์ŠคํŠธ ํƒ์ƒ‰๊ธฐ์— ํ‘œ์‹œ๋˜์ง€ ์•Š๋Š” ๊ฒฝ์šฐ ์‚ฌ๊ณผ๋“œ๋ฆฝ๋‹ˆ๋‹ค. NuGet์˜ NUnit3TestAdapter 3.8.0๊ณผ API TestContext.AddTestAttachement(file) ์žˆ์ง€๋งŒ ํ…Œ์ŠคํŠธ ํƒ์ƒ‰๊ธฐ์— ์ฒจ๋ถ€ ํŒŒ์ผ์ด ํ‘œ์‹œ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋‚˜๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ฒƒ์„ ๊ธฐ๋Œ€ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

image

๋‚ด ์˜ˆ์ƒ์ด ์ž˜๋ชป๋œ ๊ฑด๊ฐ€์š”?

@kdubau - ์•„๋‹ˆ์š”, ์ด๊ฒƒ์€ NUnit v3.7 ๋ฐ NUnit3TestAdapter 3.8์—์„œ ์ถœ์‹œ๋˜์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๊ตฌํ˜„์— ๋Œ€ํ•ด์„œ๋Š” https://github.com/nunit/nunit3-vs-adapter/issues/332 ๋ฅผ ์ฐธ์กฐ

์ž‘๋™ํ•˜์ง€ ์•Š์œผ๋ฉด ๋จผ์ € NUnit ์ฝ˜์†”์—์„œ ํ…Œ์ŠคํŠธ๋ฅผ ์‹คํ–‰ํ•˜๊ณ  ๊ฒฐ๊ณผ xml ํŒŒ์ผ์— ์ฒจ๋ถ€ ํŒŒ์ผ์ด ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ๊ธฐ๋ก๋˜์—ˆ๋Š”์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ ‡์ง€ ์•Š์€ ๊ฒฝ์šฐ ์ด ๋ฆฌํฌ์ง€ํ† ๋ฆฌ์—์„œ ๋ฌธ์ œ๋ฅผ ์—ด๊ณ  ๋ฌธ์ œ๊ฐ€ ์žˆ๋Š” ๊ฒฝ์šฐ ์–ด๋Œ‘ํ„ฐ ๋ฆฌํฌ์ง€ํ† ๋ฆฌ์—์„œ ๋ฌธ์ œ๋ฅผ ์—ฝ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋ฉด ๋” ์กฐ์‚ฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๐Ÿ™‚

@ChrisMaddock ์ข‹์•„, ๋ฌธ์ œ ์ƒ์„ฑ https://github.com/nunit/nunit3-vs-adapter/issues/373

@kdubau ์˜ ๋™๊ธฐ ๋ถ€์—ฌ ๋•๋ถ„์— ๋งˆ์นจ๋‚ด ์ด ๊ธฐ๋Šฅ์„ ๋ฌธ์„œํ™”ํ–ˆ์œผ๋ฉฐ ์ด Epic์„ ๋‹ซ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๐Ÿ˜„

์ด ํŽ˜์ด์ง€๊ฐ€ ๋„์›€์ด ๋˜์—ˆ๋‚˜์š”?
0 / 5 - 0 ๋“ฑ๊ธ‰