[Jenkins]Batch Command로 네트워크 드라이브 접근

Jenkins에서 Execute Windows Batch Command를 이용해서 네트워크에 접근하려고 하면 에러가 발생한다. Network drive mappings (Windows) On Windows, network drive mappings are scoped to users. So if you run Jenkins in a different user account (such as a Windows service), they will not see the same drive mapping that you do. Use UNC notation (//server/path/to/file), or refer to How to get command prompt as the SYSTEM user  and start a command prompt, then define drive mappings. Ref:  Jenkins Wiki 사용자 계정 문제 때문에 이러한 에러가 발생하게 되는데, 이것을 해결하기 위해서는 네트워크 드라이브를 연결할 때, NT AUTHORITY\SYSTEM 계정으로 등록을 해야한다. 등록하는 방법은 아래와 같다. 1. psexec를 C드라이브(C:\)에 다운로드 받는다. 2. cmd(명령 프롬프트)를 관리자 권한으로 실행한다. 3. cd C:\  입력 4. psexec -i -s cmd.exe  입력 (* whoami 를 입력해서 nt authority\system가 나온다면 정상이다.) 5.  net use Z: \\servername_OR_IP\sharedfolder /u:username /persistent:yes 위 과정을 수행한 뒤에 다시 Jenkins에서 Z: 드라이브에 접근하면 오류 없이 접근할 수 있다.

단위 테스트와 테스트 주도 개발

1. 단위 테스트 1.1. 단위 테스트란? TDD를 하기 위해서는 단위 테스트가 필요하다. 단위 테스트란 특정 모듈이 의도된 대로 동작하는지 검증하는 것이다. 여기서 모듈은 함수를 의미하며 모든 함수에 대해 테스트 케이스를 작성하여야만 한다. 1.2. 단위 테스트 하니스(unit test harness)   단위 테스트 하니스는 단위 테스트를 위한 소프트웨어 프레임워크 이다. 구현한 제품 코드가 어떻게 동작해야하는지 표현하도록 해준다. C로 구현된 Unity, C++로 구현된 CppUTest 등이 있다. 2. 테스트 주도 개발(Test-Driven Development, TDD) 2.1. TDD란?     소프트웨어를 개발할 때 많이 실수하는 것 중 하나가 바로 테스트를 뒤로 미루는 것이다. 많은 양의 코드를 한꺼번에 작성한 뒤에 테스트를 수행하게되면 십중팔구 오류가 나기마련이다. 이러한 문제점을 개선하기 위핸 개발 방법이 바로 Test-Driven Development(TDD) 이다. TDD는 점진적으로 소프트웨어를 개발하는 기법이다. 개발 과정 중에 작은 테스트를 만들고, 그 테스트를 통과하면 다음 과정을 이어서 수행한다. 2.2. TDD의 장점     프로그램의 버그를 빠르게 발견할 수 있고, 이로인해 나중에 한꺼번에 몰려올 버그들을 예방할 수 있다. 또한 작은 단위로 테스트를 작성하면서 코드를 작성하는 것은 더 나은 설계(깔금한 코드)를 하도록 도와준다. 2.3. TDD 사이클     TDD의 핵심은 "TDD 마이크로 사이클"이라고 알려진 작은 단계들을 순차적으로 반복하는 것이다. 아래 목록은 켄트 벡(Kent Beck)의 책, 테스트 주도 개발에 설명된 TDD 사이클 단계이다. 작은 테스트를 하나 추가한다. 모든 테스트를 실행하여 새로 추가한 테스트가 실패하는 것을 눈으로 확인한다. 컴파일이 안되는 것 조차도 실패다. 실패한 테...