{"action":"closed","issue":{"url":"https://api.github.com/repos/kubernetes/kubernetes/issues/3837","labels_url":"https://api.github.com/repos/kubernetes/kubernetes/issues/3837/labels{/name}","comments_url":"https://api.github.com/repos/kubernetes/kubernetes/issues/3837/comments","events_url":"https://api.github.com/repos/kubernetes/kubernetes/issues/3837/events","html_url":"https://github.com/kubernetes/kubernetes/issues/3837","id":55645966,"number":3837,"title":"Port End-to-End tests to ginkgo/gomega","user":{"login":"rrati","id":87555,"avatar_url":"https://avatars.githubusercontent.com/u/87555?v=3","gravatar_id":"","url":"https://api.github.com/users/rrati","html_url":"https://github.com/rrati","followers_url":"https://api.github.com/users/rrati/followers","following_url":"https://api.github.com/users/rrati/following{/other_user}","gists_url":"https://api.github.com/users/rrati/gists{/gist_id}","starred_url":"https://api.github.com/users/rrati/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/rrati/subscriptions","organizations_url":"https://api.github.com/users/rrati/orgs","repos_url":"https://api.github.com/users/rrati/repos","events_url":"https://api.github.com/users/rrati/events{/privacy}","received_events_url":"https://api.github.com/users/rrati/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/kubernetes/kubernetes/labels/area/test","name":"area/test","color":"fad8c7"},{"url":"https://api.github.com/repos/kubernetes/kubernetes/labels/priority/P3","name":"priority/P3","color":"fef2c0"},{"url":"https://api.github.com/repos/kubernetes/kubernetes/labels/team/testing","name":"team/testing","color":"d2b48c"}],"state":"closed","locked":false,"assignee":null,"milestone":null,"comments":34,"created_at":"2015-01-27T17:13:12Z","updated_at":"2015-09-02T18:32:28Z","closed_at":"2015-09-02T18:32:28Z","body":"Currently the end-to-end (e2e) tests run using a home grown test framework which may not provide all the functionality of an established testing framework and may require additional maintenance of the framework itself.  Ginkgo/Gomega seem to be a pretty complete Go testing frameworkl.\r\n\r\nSome of the functionality ginkgo/gomega provides:\r\n- test suite randomization\r\n- parallel test execution\r\n- custom reporting\r\n- spec structuring similar to other testing frameworks\r\n\r\nThere's a lot more functionality provided which may or may not be useful.  Information about ginkgo/gomega can be found here: http://onsi.github.io/ginkgo/\r\n\r\nMoving the e2e suite from the current framework to ginkgo/gomega would require porting the existing go tests and implementing any existing shell tests in go.  The porting of a test written in go from the existing framework to ginkgo/gomega is pretty straight forward.  Unless some helper functions are required it is mostly a copy of the test code into a ginkgo/gomega It stanza.  Logging should be changed from the current glog to either ginkgo/gomega By statements or standard fmt.Print*.  Logs related to failure should use the Fail method.\r\n\r\nSome POC code that ports of a few of the tests to ginkgo/gomega can be found here:\r\nhttps://github.com/rrati/kubernetes/tree/ginkgo/test/ginkgo\r\n\r\nTo run the tests:\r\n1. cd test/ginkgo\r\n2. GOPATH=$KUBE_ROOT/_output/local/go:$KUBE_ROOT/Godeps/_workspace:$GOPATH ginkgo\r\nor \r\nGOPATH=$KUBE_ROOT/_output/local/go:$KUBE_ROOT/Godeps/_workspace:$GOPATH go test\r\n\r\nWheren KUBE_ROOT is the root of the kubernetes source tree"}}