2012-02-12 2 views
2

나는 프로그래밍 방식으로 결정될 수있는 여러 개체에 적용될 수있는 오이 기능을 작성하고 있습니다. 특히, 저는 클라우드 배치에 대한 스모크 테스트를 작성하고 있습니다 (문제는 구름 도구가 아닌 오이와 같기 때문에 스택 오버플로 임). 주어진오이 기능을 반복하는 방법

Given a node matching "role:foo" 
When I connect to "automatic.eucalyptus.public_ipv4" on port "default.foo.port" 
Then I should see "Hello" 

은과 automatic.eucalyptus ... 그리고 포트가있는 노드에서 오는가 역할 foo에와 노드에 대한 검색을 수행합니다. 이것은 하나의 노드에 대해 잘 작동합니다.

검색을 통해 여러 환경에서 여러 노드를 다시 검색 할 수 있습니다. 데브는 아마 하나, 테스트 및 통합 커플을 반환하고, 찌르다 다를 수 있습니다. 주어진 사람은 이미 그것들 모두를 찾습니다.

각 단계에서 노드를 루핑하는 것이 실제로 작동하지 않습니다. When에 실패한 사람이 있으면 모든 일이 실패합니다. 시나리오와 오이 반복을 살펴 보았지만 두 가지 시나리오 모두 프로그래밍 방식으로 훑어 보지 않고 모든 시나리오가 미리 정의되어 있다고 가정합니다.

나는 cuke 멍청한 녀석이다. 그래서 나는 아마도 뭔가를 놓친다. 이견있는 사람?

편집

내가 시나리오를 틀지하여 문제를 "해결"하고 있습니다. 정보를 환경 변수로 전달하여 반복적으로 기능을 호출하도록 정의하는 큰 클러스터 정의 언어로 통합하려고합니다.

+0

나는이 시나리오에서 우리가 기대하는 것에 대해 좀 더 알 필요가 있고, 전체적으로 시나리오가 실패 할 때 어떻게 정의 하는지를 알아야한다고 생각한다. 또한이 테스트는 중점을 두었습니다. 여기서 테스트하는 비즈니스 가치는 무엇입니까? 테스트 자체의 관점에서 알려진 잠재적 환경 목록이 있습니까? 환경 당 노드가 하나만 존재할 것입니까? 공작물을 한꺼번에 테스트하는 대신 단일 환경에 맞춰 실행하는 것이 이치에 맞습니까? –

답변

0

정확하게 "어떻게"할 수 없는지 미리 사과하지만, 내 친구는 다소 정통적인 기술을 사용하여 비슷한 문제를 해결했습니다. 그는 나중에 실행할 시나리오를 작성하는 시나리오를 실행합니다. 그가 이것을 위해 쓴 보석은 cukewriter입니다. 그는 보석에 대한 github 페이지에서 꽤 좋은 자세로 그것을 사용하는 방법을 설명합니다. 나는 이것이 너에게 효과가 있기를 희망한다.