jam2in / arcus-java-client

Arcus Java client
Apache License 2.0
0 stars 0 forks source link

mvn test 시 USE_ZK 옵션에 대한 논의 #3

Closed aiceru closed 8 years ago

aiceru commented 8 years ago

USE_ZK 옵션 필요 여부에 대한 논의가 필요합니다. 현재는 USE_ZK=false 일 경우에도, ZK_HOST / ZK_SERVICE_CODE 를 환경에 맞게 설정해 주어야 mvn test 가 성공합니다.

참조 : maven test 관련 이슈

ARCUS 솔루션 자체가 ZK 를 내부적으로 포함하고 있는 구조이니, USE_ZK 를 없애고 default true 로 가져갈지, 아니면 ZK 없이 arcus-memcached 를 단독으로 사용하는 경우까지를 배려할지에 대해 논의가 필요합니다.

aiceru commented 8 years ago

부가적으로 ProtocolBaseCase.gracefulShutdown() test case 의 수정 역시 필요합니다. 별도의 이슈로 만들기엔 단위가 너무 작은 것 같아 이 이슈에 함께 기록해 둡니다.

whchoi83 commented 8 years ago

ProtocolBaseCase.gracefulShutdown() 의 테스트는 아래 이슈를 해결하면 수정이 가능합니다. https://github.com/jam2in/arcus-java-client/issues/4

aiceru commented 8 years ago

ZK 사용시 테스트에 너무 오랜 시간이 걸리는 문제나, gracefulShutdown 의 케이스 등은 #4 이슈를 수정하면 자동으로 해결됨을 확인하였습니다.

이 이슈는 close 합니다.

jhpark816 commented 8 years ago

하나 확인할 사항이 있네요.. 시험 동작을 control하기 위해 어떤 variable(예, USE_ZK)를 둘 지는 별개의 문제로 하더라도, 아래 두 경우를 구분하여 테스트하는 옵션이 필요하지 않을까 생각되네요.

aiceru commented 8 years ago

현재 두 경우 모두 지원하는 방향으로 테스트코드 수정을 진행하고 있습니다.

하지만 지난번 네이버 빌드/배포 이슈 건에서도 보셨듯이, ZK 를 사용하지 않는다 하더라도 테스트 수행시 mvn 환경변수로 ZK 의 주소, 포트 등의 정보가 올바르게 들어가야만 테스트가 되는 상태입니다. (ArcusClient 를 생성하려면 ZK 가 반드시 필요하므로.) 이러한 상태로는 사용자에게 혼란을 가중시킬 수 있습니다.

4 에서 언급된 CFB class 같은 문제도 있고, latch.await() 가 생각한대로 동작하지 않아 sleep(10) 을 때워놓은 코드도 있습니다. 현재 arcus java client 의 소스코드와는 다르게 테스트코드들은 상당히 구멍이 많은 상태입니다.

ZK 를 사용하거나 또는 사용하지 않는 테스트를 모두 지원하기 위해서는

  1. 기존의 spymemcached 의 테스트코드 (MemcachedClient 객체를 사용) 를 ZK 를 사용하지 않는 경우로 분리하고,
  2. ArcusClient 를 사용하는 테스트코드는 모두 ZK 를 사용하는 경우로 옮겨야 합니다.

현재로서는 상당히 많은 시간을 들여서 테스트코드 전체를 정비해야 할 필요가 있습니다.

4 이슈 내용을 수정하고, 기존의 테스트코드 정비는 별도의 새로운 이슈로 등록하여 진행할 예정입니다.