목록초보사장 생활 (1270)
Dharma
드디어 대망의 cppUnit 과 CruiseControl.NET 과의 결합입니다. 일단은 개념만 다루기로 하고 다음 포스트에서 프로젝트를 하나 하나 생성해 나가면서, SVN , CI , Schedule , TDD , IssueTracker 까지 적용해서 하나의 프로젝트로 만드는 포스팅 할 예정입니다. (우리 회사에서 적용하고 있는 방법론이기도 합니다, 비용은 인건비만 들고 실용주의 시스템 구성에 돈이 안드는 방법론을 맛볼 수 있습니다.) 저는 맘대로 그 방법을 도입한 형태를 실천주의 구성이라고 합니다 ㅎㅎ 지금까지 cppTest 프로젝트를 하면서 , 화면에 (콘솔) 테스트 결과가 출력되는 형태까지 봐 왔을것입니다. 이제부터 CruiseControl.NET 의 웹 대쉬보드 에 테스트 결과를 출력하게 해서 ..
기존의 CruiseControl.NET 에서 TestProject 를 실행해야 하는 경우가 있습니다. 그때는 블록에서 블록을 이용해서 TestProject 의 결과물을 호출합니다. ccnet.config 에서 블록에서 블록을 추가해줍니다. D:\User\Crazia\Work\win2007d\build\Test2007d.exe D:\User\Crazia\Work\win2007d\build 10 에 실행 파일을 적어주고 블록안에 넣어주시면 됩니다. 저는 블록 다음에 바로 넣어줬습니다. 다음은 이것을 실행하기까지 생겼던 에러를 간단하게 정리해 봤습니다. 블록과 블록에서 제대로 블록이 동작안되는 현상이 발생했습니다. 그당시 의 형태가 TestRunner.bat "D:\User\Crazia\Work\win2007..
emacs 에서 erc 를 실행시키면 , 코딩은 자체 emacs 것을 따라갑니다. 즉 UTF-8 인지 , euc-kr 인지 따라갑니다. 그래서 euc-kr 인 사람들과 채팅을 하면 글이 깨져 보이는 현상이 utf-8 기반인 emacs 쓰는 사람과 그냥 irc 프로그램을 쓰는 사람들사이의 통신에서 나타납니다. 그걸 해결할려고 찾아보니 erc 자체쪽 변수에 값을 설정하는 방법이 있더군요. 조금 더 검색을 해보니 잘 정리해주신 분이 있어서 링크 겁니다. 참고로 제것도 올립니다. 그 분 것이랑 거의 똑같고 리스트 부분에 제가 즐겨 가는 곳만 추가해 뒀습니다. (setq erc-default-coding-system '(euc-kr . undecided)) (setq erc-echo-notices-in-minib..
지금까지 CookBook 의 예제를 따라서 하시다 보면 드는 의문이 있을 것입니다. 원칙대로 따라서 소스코드를 친 다음에 나온 결과물을 실행하면 . OK 라고 덜렁 나오는 것을 볼 수가 있을것입니다. NUnit 을 써보신 분들은 그 화려한 GUI 나 , TextMode 일때에도 나오는 그 많은 정보들이 하나도 나오지 않습니다. 심지어는 내가 무엇을 테스트 하는지에 대한 정보조차 없습니다. CppUnit 상당히 실망스러울 수밖에 없었습니다. 하지만 없을리가 없지 않습니까 ㅎㅎ , 그래서 조금 조사해보니 답이 나오더군요. cppTest.cpp 만 바꿔 주면 됩니다. int main(int argc , char **argv) { // 결과값을 저장하기 위한 매니저와 콘트롤러 성격을 선언해줍니다. CPPUNIT..
Helper Macros TestRunner 에서 봤듯이 Fixture 에는 Static 함수는 suite() 가 필요합니다. 하지만 이것을 매번 작성하다보면 , 내용이 귀찮고, 반복적으로 해야 하고 그러다 보면 실수를 유발하게 됩니다. 그래서 이부분을 편리한 매크로로 만들어서 쓰게 할 수 있습니다. 기존의 파일에서 #include 를 추가하면 macro를 쓸 수 있게 해줍니다. CPPUNIT_TEST_SUITE ( ComplexNumberTest) ; ('' 이것을 선언해주면 suite 를 쓰겠다고 선언하는 것입니다. suite 에 추가해줄 함수들을 추가하고요 CPPUNIT_TEST (testEquality ) ; CPPUNIT_TEST (testAddition ) ; 그리고 suite 선언이 끝났다고..
Suite 테스트 케이스를 한꺼번에 몰아서 돌릴려고 하면 , Suite 가 필요합니다. 정확히는 TestSuite 이지요. 전 포스팅에서 한개체를 돌리는 경우를 봤으니 이번에는 한번에 돌리는걸 알아 보도록 하죠. cppTest.cpp #include int _tmain(int argc, _TCHAR* argv[]) { CppUnit::TestSuite suite; CppUnit::TestResult result; suite.addTest( new CppUnit::TestCaller( "testEquality", &ComplexNumberTest::testEquality ) ); suite.addTest( new CppUnit::TestCaller( "testAddition", &ComplexNumberT..
'테스트 주도 개발' 책에서 또 관심을 끌었던 부분입니다. 마치는 글을 마틴 파울러가 장식을 했군요. 그 부분도 올려봅니다. 테스트 주도 개발에 대해 설명하기 어려운 것 중 하나는 TDD를 하면 돌입하게 되는 정신상태다. C3 프로젝트에서 랄프 베티(Ralph Beattie)와 함께 했던 세션을 기억한다. 우리는 복잡한 지불 조건을 구현해야만 했다. 랄프는 그걸 여러 개의 테스트 케이스로 쪼갰고, 우리는 그것들이 작동하도록 하나씩 접근했다. 꾸준히 서두르지 않으면서 진행했다. 서두르지 않았기 때문에 느린 것처럼 보였지만, 얼마나 많은 일을 했는지 뒤돌아 보면 , 작업시의 느긋한 느낌에도 불구하고 진행 속도는 매우 빨랐다. 우리가 가진 화려한 도구들에도 불구하고, 프로그래밍은 여전히 어렵다. 동시에 여러 ..
테스트 주도 개발 책을 읽으면서 그 책에서 제일 괜찮다고 생각하는 부분중에 한 부분입니다. TDD 개념을 가장 쉽게 접근할 수 있도록 만든 예제인데 무단으로 퍼서 소개할까 합니다. - 사실 본 책 안에 있는 내용은 좀 난해한 편이고 , 이 예제가 더 이해하기 쉽습니다. - 부록 B . 피보나치 이 책의 검토자 중 한 명의 질문에 대한 답으로 나는 피보나치 수열을 테스트 주도로 개발해 올렸다. 몇 명의 검토자들이 이 예를 보고 TDD가 어떻게 작동하는지 이해하는 데 큰 도움이 되었다고 했다. 하지만 이 책에 사용된 예제를 피보나치 예제로 바꾸기에는 피보나치 예제가 너무 짧고, 다양한 TDD 기술을 충분히 보여주지도 못한다. 이 책의 주 예제를 읽은 후에도 여전히 번쩍이는 깨달음을 얻지 못했다면 여기를 잠깐..
제목: 테스트 주도 개발 원제: Test - Driven Development by Example 지은이 : 켄트 벡 옮김 : 김창준 , 강규영 테스트 주도 개발 ! 참 요즘들어 많이 듣는 말 입니다. 하지만 실행하기가 그리 쉽지 않은 부분이기도 하지요. 원인이 무엇인가 조금 생각해보면 알 수 있습니다. 결국 '실천' 이 관련되었기 때문입니다. 자신이 익숙한 것만 하려고 드는 개발자의 특성상 무엇인가 새로운 것을 해보기가 쉽지가 않은 것이 또한 큰 이유중에 한가지 입니다. 저는 이책을 지인의 추천으로 가지고 있었는데 서문을 조금 읽어본 후에 계속해서 가지고 있었습니다. 그리 흥미를 못느꼈기 때문입니다. 좋은 이야기가 많이 쓰여져 있지만 실천하기 힘든 역시나 일반적인 서적하고 비슷한게 아닐까 라는 편견을 ..
회사에서 스마트폰 프로그램을 제작하는 일을 하게 되서 환경 세팅을 하고 있었습니다. 환경은 '블랙잭' 이 될 듯해서요. ROUND 1 http://blog.nworkers.net/183 이분의 블로그를 참고 삼아서 개발 환경을 '블랙잭'에 맞게 세팅을 했습니다. 여기도 알바하시는 분이 잘 찾아오셔서 그대로 설치를 딱 하는 순간.. 언제나 그렇듯이 프로젝트가 생성이 안됩니다. -0- Error 는 1033 폴더 밑의 default.html 이 호출이 안된다는 것입니다. 정확한 위치는 아래 입니다. C:\Program Files (x86)\Microsoft Visual Studio 8\VC\VCWizards\SmartDeviceAppWiz\MFC\Application\html\1033\default.html..