// TestE2E checks configuration parameters (specified through flags) and then runs // E2E tests using the Ginkgo runner. // If a "report directory" is specified, one or more JUnit test reports will be // generated in this directory, and cluster logs will also be saved. // This function is called on each Ginkgo node in parallel mode. func RunE2ETests(t *testing.T) { runtime.ReallyCrash = true util.InitLogs() defer util.FlushLogs() // We must call setupProviderConfig first since SynchronizedBeforeSuite needs // cloudConfig to be set up already. if err := setupProviderConfig(); err != nil { glog.Fatalf(err.Error()) } gomega.RegisterFailHandler(ginkgo.Fail) // Disable skipped tests unless they are explicitly requested. if config.GinkgoConfig.FocusString == "" && config.GinkgoConfig.SkipString == "" { // TODO(ihmccreery) Remove [Skipped] once all [Skipped] labels have been reclassified. config.GinkgoConfig.SkipString = `\[Flaky\]|\[Skipped\]|\[Feature:.+\]` } // Run tests through the Ginkgo runner with output to console + JUnit for Jenkins var r []ginkgo.Reporter if testContext.ReportDir != "" { // TODO: we should probably only be trying to create this directory once // rather than once-per-Ginkgo-node. if err := os.MkdirAll(testContext.ReportDir, 0755); err != nil { glog.Errorf("Failed creating report directory: %v", err) } else { r = append(r, reporters.NewJUnitReporter(path.Join(testContext.ReportDir, fmt.Sprintf("junit_%02d.xml", config.GinkgoConfig.ParallelNode)))) } } glog.Infof("Starting e2e run %q on Ginkgo node %d", runId, config.GinkgoConfig.ParallelNode) ginkgo.RunSpecsWithDefaultAndCustomReporters(t, "Kubernetes e2e suite", r) }
func ExecuteTest(t *testing.T, suite string) { var r []ginkgo.Reporter if reportDir != "" { if err := os.MkdirAll(reportDir, 0755); err != nil { glog.Errorf("Failed creating report directory: %v", err) } defer e2e.CoreDump(reportDir) } // Disable density test unless it's explicitly requested. if config.GinkgoConfig.FocusString == "" && config.GinkgoConfig.SkipString == "" { config.GinkgoConfig.SkipString = "Skipped" } gomega.RegisterFailHandler(ginkgo.Fail) if reportDir != "" { r = append(r, reporters.NewJUnitReporter(path.Join(reportDir, fmt.Sprintf("%s_%02d.xml", reportFileName, config.GinkgoConfig.ParallelNode)))) } if quiet { r = append(r, NewSimpleReporter()) ginkgo.RunSpecsWithCustomReporters(t, suite, r) } else { ginkgo.RunSpecsWithDefaultAndCustomReporters(t, suite, r) } }
func TestE2eNode(t *testing.T) { if *runServicesMode { // If run-services-mode is specified, only run services in current process. services.RunE2EServices() return } if *systemValidateMode { // If system-validate-mode is specified, only run system validation in current process. if err := system.Validate(); err != nil { glog.Exitf("system validation failed: %v", err) } return } // If run-services-mode is not specified, run test. rand.Seed(time.Now().UTC().UnixNano()) RegisterFailHandler(Fail) reporters := []Reporter{} reportDir := framework.TestContext.ReportDir if reportDir != "" { // Create the directory if it doesn't already exists if err := os.MkdirAll(reportDir, 0755); err != nil { glog.Errorf("Failed creating report directory: %v", err) } else { // Configure a junit reporter to write to the directory junitFile := fmt.Sprintf("junit_%s%02d.xml", framework.TestContext.ReportPrefix, config.GinkgoConfig.ParallelNode) junitPath := path.Join(reportDir, junitFile) reporters = append(reporters, more_reporters.NewJUnitReporter(junitPath)) } } RunSpecsWithDefaultAndCustomReporters(t, "E2eNode Suite", reporters) }
func TestApplications(t *testing.T) { RegisterFailHandler(Fail) config := helpers.LoadConfig() helpers.SetupEnvironment(helpers.NewContext(config)) rs := []Reporter{} if config.ArtifactsDirectory != "" { os.Setenv( "CF_TRACE", filepath.Join( config.ArtifactsDirectory, fmt.Sprintf("CATS-TRACE-%s-%d.txt", "Applications", ginkgoconfig.GinkgoConfig.ParallelNode), ), ) rs = append( rs, reporters.NewJUnitReporter( filepath.Join( config.ArtifactsDirectory, fmt.Sprintf("junit-%s-%d.xml", "Applications", ginkgoconfig.GinkgoConfig.ParallelNode), ), ), ) } RunSpecsWithDefaultAndCustomReporters(t, "Applications", rs) }
// TestE2E checks configuration parameters (specified through flags) and then runs // E2E tests using the Ginkgo runner. // If a "report directory" is specified, one or more JUnit test reports will be // generated in this directory, and cluster logs will also be saved. // This function is called on each Ginkgo node in parallel mode. func RunE2ETests(t *testing.T) { runtime.ReallyCrash = true util.InitLogs() defer util.FlushLogs() gomega.RegisterFailHandler(ginkgo.Fail) // Disable skipped tests unless they are explicitly requested. if config.GinkgoConfig.FocusString == "" && config.GinkgoConfig.SkipString == "" { config.GinkgoConfig.SkipString = `\[Flaky\]|\[Feature:.+\]` } // Run tests through the Ginkgo runner with output to console + JUnit for Jenkins var r []ginkgo.Reporter if framework.TestContext.ReportDir != "" { // TODO: we should probably only be trying to create this directory once // rather than once-per-Ginkgo-node. if err := os.MkdirAll(framework.TestContext.ReportDir, 0755); err != nil { glog.Errorf("Failed creating report directory: %v", err) } else { r = append(r, reporters.NewJUnitReporter(path.Join(framework.TestContext.ReportDir, fmt.Sprintf("junit_%v%02d.xml", framework.TestContext.ReportPrefix, config.GinkgoConfig.ParallelNode)))) } } glog.Infof("Starting e2e run %q on Ginkgo node %d", framework.RunId, config.GinkgoConfig.ParallelNode) ginkgo.RunSpecsWithDefaultAndCustomReporters(t, "Kubernetes e2e suite", r) }
func GinkgoBootstrap(t *testing.T, suiteName string) { RegisterFailHandler(Fail) cf.AsUser(RegularUserContext, func() { outputFile := fmt.Sprintf("../results/%s-junit_%d.xml", suiteName, ginkgoconfig.GinkgoConfig.ParallelNode) RunSpecsWithDefaultAndCustomReporters(t, suiteName, []Reporter{reporters.NewJUnitReporter(outputFile)}) }) }
func TestSmokeTests(t *testing.T) { testConfig := smoke.GetConfig() testUserContext := cf.NewUserContext( testConfig.ApiEndpoint, testConfig.User, testConfig.Password, testConfig.Org, testConfig.Space, testConfig.SkipSSLValidation, ) RegisterFailHandler(Fail) cf.CF_API_TIMEOUT = CF_API_TIMEOUT_OVERRIDE var originalCfHomeDir, currentCfHomeDir string BeforeEach(func() { originalCfHomeDir, currentCfHomeDir = cf.InitiateUserContext(testUserContext) if !testConfig.UseExistingOrg { Expect(cf.Cf("create-quota", quotaName(testConfig.Org), "-m", "10G", "-r", "10", "-s", "2").Wait(CF_TIMEOUT_IN_SECONDS)).To(Exit(0)) Expect(cf.Cf("create-org", testConfig.Org).Wait(CF_TIMEOUT_IN_SECONDS)).To(Exit(0)) Expect(cf.Cf("set-quota", testConfig.Org, quotaName(testConfig.Org)).Wait(CF_TIMEOUT_IN_SECONDS)).To(Exit(0)) } Expect(cf.Cf("target", "-o", testConfig.Org).Wait(CF_TIMEOUT_IN_SECONDS)).To(Exit(0)) if !testConfig.UseExistingSpace { Expect(cf.Cf("create-space", "-o", testConfig.Org, testConfig.Space).Wait(CF_TIMEOUT_IN_SECONDS)).To(Exit(0)) } Expect(cf.Cf("target", "-s", testConfig.Space).Wait(CF_TIMEOUT_IN_SECONDS)).To(Exit(0)) }) AfterEach(func() { if testConfig.Cleanup && !testConfig.UseExistingSpace { Expect(cf.Cf("delete-space", testConfig.Space, "-f").Wait(CF_TIMEOUT_IN_SECONDS)).To(Exit(0)) } if testConfig.Cleanup && !testConfig.UseExistingOrg { Expect(cf.Cf("delete-org", testConfig.Org, "-f").Wait(CF_TIMEOUT_IN_SECONDS)).To(Exit(0)) Expect(cf.Cf("delete-quota", quotaName(testConfig.Org), "-f").Wait(CF_TIMEOUT_IN_SECONDS)).To(Exit(0)) } cf.RestoreUserContext(testUserContext, originalCfHomeDir, currentCfHomeDir) }) rs := []Reporter{} if testConfig.ArtifactsDirectory != "" { os.Setenv("CF_TRACE", traceLogFilePath(testConfig)) rs = append(rs, reporters.NewJUnitReporter(jUnitReportFilePath(testConfig))) } RunSpecsWithDefaultAndCustomReporters(t, "CF-Runtime-Smoke-Tests", rs) }
func TestE2E(t *testing.T) { util.ReallyCrash = true util.InitLogs() defer util.FlushLogs() // TODO: possibly clean up or refactor this functionality. if testContext.Provider == "" { glog.Fatal("The --provider flag is not set. Treating as a conformance test. Some tests may not be run.") } if testContext.Provider == "aws" { awsConfig := "[Global]\n" if cloudConfig.Zone == "" { glog.Fatal("gce-zone must be specified for AWS") } awsConfig += fmt.Sprintf("Zone=%s\n", cloudConfig.Zone) if cloudConfig.ClusterTag == "" { glog.Fatal("--cluster-tag must be specified for AWS") } awsConfig += fmt.Sprintf("KubernetesClusterTag=%s\n", cloudConfig.ClusterTag) var err error cloudConfig.Provider, err = cloudprovider.GetCloudProvider(testContext.Provider, strings.NewReader(awsConfig)) if err != nil { glog.Fatal("Error building AWS provider: ", err) } } // Disable density test unless it's explicitly requested. if config.GinkgoConfig.FocusString == "" && config.GinkgoConfig.SkipString == "" { config.GinkgoConfig.SkipString = "Skipped" } gomega.RegisterFailHandler(ginkgo.Fail) // Ensure all pods are running and ready before starting tests (otherwise, // cluster infrastructure pods that are being pulled or started can block // test pods from running, and tests that ensure all pods are running and // ready will fail). if err := waitForPodsRunningReady(api.NamespaceDefault, testContext.MinStartupPods, podStartupTimeout); err != nil { glog.Fatalf("Error waiting for all pods to be running and ready: %v", err) } // Run tests through the Ginkgo runner with output to console + JUnit for Jenkins var r []ginkgo.Reporter if *reportDir != "" { r = append(r, reporters.NewJUnitReporter(path.Join(*reportDir, fmt.Sprintf("junit_%02d.xml", config.GinkgoConfig.ParallelNode)))) failReport := &failReporter{} r = append(r, failReport) defer func() { if failReport.failed { coreDump(*reportDir) } }() } ginkgo.RunSpecsWithDefaultAndCustomReporters(t, "Kubernetes e2e suite", r) }
func TestServices(t *testing.T) { if IntegrationConfig.SmokeTestsOnly { ginkgoconfig.GinkgoConfig.FocusString = "Service instance lifecycle" } helpers.TimeoutScale = IntegrationConfig.TimeoutScale helpers.SetupEnvironment(helpers.NewContext(IntegrationConfig)) RegisterFailHandler(Fail) RunSpecsWithDefaultAndCustomReporters(t, "P-MySQL Acceptance Tests", []Reporter{reporters.NewJUnitReporter(fmt.Sprintf("junit_%d.xml", ginkgoconfig.GinkgoConfig.ParallelNode))}) }
func TestTests(t *testing.T) { RegisterFailHandler(Fail) enableJunit := os.Getenv("JUNIT") if enableJunit == "true" { junitReporter := reporters.NewJUnitReporter(filepath.Join(settings.ActualHome, fmt.Sprintf("junit-%d.xml", GinkgoConfig.ParallelNode))) RunSpecsWithDefaultAndCustomReporters(t, "Deis Workflow", []Reporter{junitReporter}) } else { RunSpecs(t, "Deis Workflow") } }
func TestIntegration(t *testing.T) { if testing.Short() { t.Skip("skipped by -test.short option") } if err := util.ConfigWrite("gw-config.yml", "gw-config.yml.tmpl", "MASTER_APP"); err != nil { t.Fatal(err) } if err := util.ConfigWrite("it-config.yml", "it-config.yml.tmpl", "EN_APP"); err != nil { t.Fatal(err) } RegisterFailHandler(Fail) junitReporter := reporters.NewJUnitReporter("junit.xml") RunSpecsWithDefaultAndCustomReporters(t, "Integration under Normal Mode Suite", []Reporter{junitReporter}) }
func TestE2eNode(t *testing.T) { if *runServicesMode { // If run-services-mode is specified, only run services in current process. services.RunE2EServices() return } if *runKubeletMode { // If run-kubelet-mode is specified, only start kubelet. services.RunKubelet() return } if *systemValidateMode { // If system-validate-mode is specified, only run system validation in current process. if framework.TestContext.NodeConformance { // Chroot to /rootfs to make system validation can check system // as in the root filesystem. // TODO(random-liu): Consider to chroot the whole test process to make writing // test easier. if err := syscall.Chroot(rootfs); err != nil { glog.Exitf("chroot %q failed: %v", rootfs, err) } } if err := system.ValidateDefault(); err != nil { glog.Exitf("system validation failed: %v", err) } return } // If run-services-mode is not specified, run test. rand.Seed(time.Now().UTC().UnixNano()) RegisterFailHandler(Fail) reporters := []Reporter{} reportDir := framework.TestContext.ReportDir if reportDir != "" { // Create the directory if it doesn't already exists if err := os.MkdirAll(reportDir, 0755); err != nil { glog.Errorf("Failed creating report directory: %v", err) } else { // Configure a junit reporter to write to the directory junitFile := fmt.Sprintf("junit_%s%02d.xml", framework.TestContext.ReportPrefix, config.GinkgoConfig.ParallelNode) junitPath := path.Join(reportDir, junitFile) reporters = append(reporters, morereporters.NewJUnitReporter(junitPath)) } } RunSpecsWithDefaultAndCustomReporters(t, "E2eNode Suite", reporters) }
func TestE2eNode(t *testing.T) { flag.Parse() rand.Seed(time.Now().UTC().UnixNano()) RegisterFailHandler(Fail) reporters := []Reporter{} if *reportDir != "" { // Create the directory if it doesn't already exists if err := os.MkdirAll(*reportDir, 0755); err != nil { glog.Errorf("Failed creating report directory: %v", err) } else { // Configure a junit reporter to write to the directory junitFile := fmt.Sprintf("junit_%02d.xml", *junitFileNumber) junitPath := path.Join(*reportDir, junitFile) reporters = append(reporters, more_reporters.NewJUnitReporter(junitPath)) } } RunSpecsWithDefaultAndCustomReporters(t, "E2eNode Suite", reporters) }
// Run each Go end-to-end-test. This function assumes the // creation of a test cluster. func RunE2ETests(context *TestContextType, orderseed int64, times int, reportDir string, testList []string) { testContext = *context util.ReallyCrash = true util.InitLogs() defer util.FlushLogs() if len(testList) != 0 { if config.GinkgoConfig.FocusString != "" || config.GinkgoConfig.SkipString != "" { glog.Fatal("Either specify --test/-t or --ginkgo.focus/--ginkgo.skip but not both.") } var testRegexps []string for _, t := range testList { testRegexps = append(testRegexps, regexp.QuoteMeta(t)) } config.GinkgoConfig.FocusString = `\b(` + strings.Join(testRegexps, "|") + `)\b` } // Disable density test unless it's explicitly requested. if config.GinkgoConfig.FocusString == "" && config.GinkgoConfig.SkipString == "" { config.GinkgoConfig.SkipString = "Skipped" } // TODO: Make orderseed work again. var passed testResult = true gomega.RegisterFailHandler(ginkgo.Fail) // Run the existing tests with output to console + JUnit for Jenkins for i := 0; i < times && passed; i++ { var r []ginkgo.Reporter if reportDir != "" { r = append(r, reporters.NewJUnitReporter(path.Join(reportDir, fmt.Sprintf("junit_%d.xml", i+1)))) } ginkgo.RunSpecsWithDefaultAndCustomReporters(&passed, fmt.Sprintf("Kubernetes e2e Suite run %d of %d", i+1, times), r) } if !passed { glog.Fatalf("At least one test failed") } else { glog.Infof("All tests pass") } }
func TestServices(t *testing.T) { RegisterFailHandler(Fail) config := helpers.LoadConfig() context = helpers.NewContext(config) environment := helpers.NewEnvironment(context) BeforeSuite(func() { environment.Setup() }) AfterSuite(func() { environment.Teardown() }) rs := []Reporter{} if config.ArtifactsDirectory != "" { os.Setenv( "CF_TRACE", filepath.Join( config.ArtifactsDirectory, fmt.Sprintf("CATS-TRACE-%s-%d.txt", "Services", ginkgoconfig.GinkgoConfig.ParallelNode), ), ) rs = append( rs, reporters.NewJUnitReporter( filepath.Join( config.ArtifactsDirectory, fmt.Sprintf("junit-%s-%d.xml", "Services", ginkgoconfig.GinkgoConfig.ParallelNode), ), ), ) } RunSpecsWithDefaultAndCustomReporters(t, "Services", rs) }
func PrepareAndRunTests(packageName string, t *testing.T, withContext bool) { var err error TestConfig, err = LoadConfig() if err != nil { panic("Loading config: " + err.Error()) } err = ValidateConfig(&TestConfig) if err != nil { panic("Validating config: " + err.Error()) } TestContext = services.NewContext(TestConfig.Config, "MySQLATS") if withContext { BeforeEach(TestContext.Setup) AfterEach(TestContext.Teardown) } RegisterFailHandler(Fail) junitReporter := reporters.NewJUnitReporter(fmt.Sprintf("junit_%d.xml", ginkgoconfig.GinkgoConfig.ParallelNode)) RunSpecsWithDefaultAndCustomReporters(t, fmt.Sprintf("P-MySQL Acceptance Tests -- %s", packageName), []Reporter{junitReporter}) }
func TestExtended(t *testing.T) { var r []ginkgo.Reporter if *reportDir != "" { if err := os.MkdirAll(*reportDir, 0755); err != nil { glog.Errorf("Failed creating report directory: %v", err) } defer CoreDump(*reportDir) } // Disable density test unless it's explicitly requested. if config.GinkgoConfig.FocusString == "" && config.GinkgoConfig.SkipString == "" { config.GinkgoConfig.SkipString = "Skipped" } gomega.RegisterFailHandler(ginkgo.Fail) if *reportDir != "" { r = append(r, reporters.NewJUnitReporter(path.Join(*reportDir, fmt.Sprintf("junit_%02d.xml", config.GinkgoConfig.ParallelNode)))) } ginkgo.RunSpecsWithDefaultAndCustomReporters(t, "OpenShift extended tests suite", r) }
func TestAgentintegration(t *testing.T) { RegisterFailHandler(Fail) junitReporter := reporters.NewJUnitReporter("junit_agentintegration.xml") RunSpecsWithDefaultAndCustomReporters(t, "Agent Integration Suite", []Reporter{junitReporter}) }
func TestClient(t *testing.T) { RegisterFailHandler(Fail) junitReporter := reporters.NewJUnitReporter("junit_redis_client.xml") RunSpecsWithDefaultAndCustomReporters(t, "Redis Client Suite", []Reporter{junitReporter}) }
func TestUberalls(t *testing.T) { RegisterFailHandler(Fail) junitReporter := reporters.NewJUnitReporter("junit.xml") RunSpecsWithDefaultAndCustomReporters(t, "Uberalls Suite", []Reporter{junitReporter}) }
func TestProcess(t *testing.T) { RegisterFailHandler(Fail) junitReporter := reporters.NewJUnitReporter("junit_process.xml") RunSpecsWithDefaultAndCustomReporters(t, "Process Suite", []Reporter{junitReporter}) }
func NewJUnitReporter(config artifactsDirectoryConfig, componentName string) *reporters.JUnitReporter { return reporters.NewJUnitReporter(jUnitReportFilePath(config, componentName)) }
readOutputFile := func() reporters.JUnitTestSuite { bytes, err := ioutil.ReadFile(outputFile) Ω(err).ShouldNot(HaveOccurred()) var suite reporters.JUnitTestSuite err = xml.Unmarshal(bytes, &suite) Ω(err).ShouldNot(HaveOccurred()) return suite } BeforeEach(func() { f, err := ioutil.TempFile("", "output") Ω(err).ShouldNot(HaveOccurred()) f.Close() outputFile = f.Name() reporter = reporters.NewJUnitReporter(outputFile) reporter.SpecSuiteWillBegin(config.GinkgoConfigType{}, &types.SuiteSummary{ SuiteDescription: "My test suite", NumberOfSpecsThatWillBeRun: 1, }) }) AfterEach(func() { os.RemoveAll(outputFile) }) Describe("a passing test", func() { BeforeEach(func() { beforeSuite := &types.SetupSummary{ State: types.SpecStatePassed,
func TestBroker(t *testing.T) { RegisterFailHandler(Fail) junitReporter := reporters.NewJUnitReporter("junit_broker.xml") RunSpecsWithDefaultAndCustomReporters(t, "Broker Suite", []Reporter{junitReporter}) }
func TestSample(t *testing.T) { RegisterFailHandler(Fail) junitReporter := reporters.NewJUnitReporter(os.Getenv("CI_REPORT")) RunSpecsWithDefaultAndCustomReporters(t, "Sample Suite", []Reporter{junitReporter}) }
func TestE2E(t *testing.T) { util.ReallyCrash = true util.InitLogs() defer util.FlushLogs() if *reportDir != "" { if err := os.MkdirAll(*reportDir, 0755); err != nil { glog.Errorf("Failed creating report directory: %v", err) } defer CoreDump(*reportDir) } if testContext.Provider == "" { glog.Info("The --provider flag is not set. Treating as a conformance test. Some tests may not be run.") } if testContext.Provider == "gce" || testContext.Provider == "gke" { var err error Logf("Fetching cloud provider for %q\r\n", testContext.Provider) var tokenSource oauth2.TokenSource tokenSource = nil if cloudConfig.ServiceAccount != "" { // Use specified service account for auth Logf("Using service account %q as token source.", cloudConfig.ServiceAccount) tokenSource = google.ComputeTokenSource(cloudConfig.ServiceAccount) } cloudConfig.Provider, err = gcecloud.CreateGCECloud(testContext.CloudConfig.ProjectID, testContext.CloudConfig.Zone, "" /* networkUrl */, tokenSource, false /* useMetadataServer */) if err != nil { glog.Fatal("Error building GCE provider: ", err) } } if testContext.Provider == "aws" { awsConfig := "[Global]\n" if cloudConfig.Zone == "" { glog.Fatal("gce-zone must be specified for AWS") } awsConfig += fmt.Sprintf("Zone=%s\n", cloudConfig.Zone) if cloudConfig.ClusterTag == "" { glog.Fatal("--cluster-tag must be specified for AWS") } awsConfig += fmt.Sprintf("KubernetesClusterTag=%s\n", cloudConfig.ClusterTag) var err error cloudConfig.Provider, err = cloudprovider.GetCloudProvider(testContext.Provider, strings.NewReader(awsConfig)) if err != nil { glog.Fatal("Error building AWS provider: ", err) } } // Disable skipped tests unless they are explicitly requested. if config.GinkgoConfig.FocusString == "" && config.GinkgoConfig.SkipString == "" { config.GinkgoConfig.SkipString = `\[Skipped\]` } gomega.RegisterFailHandler(ginkgo.Fail) c, err := loadClient() if err != nil { glog.Fatal("Error loading client: ", err) } // Delete any namespaces except default and kube-system. This ensures no // lingering resources are left over from a previous test run. if testContext.CleanStart { deleted, err := deleteNamespaces(c, nil /* deleteFilter */, []string{api.NamespaceSystem, api.NamespaceDefault}) if err != nil { t.Errorf("Error deleting orphaned namespaces: %v", err) } glog.Infof("Waiting for deletion of the following namespaces: %v", deleted) if err := waitForNamespacesDeleted(c, deleted, namespaceCleanupTimeout); err != nil { glog.Fatalf("Failed to delete orphaned namespaces %v: %v", deleted, err) } } // Ensure all pods are running and ready before starting tests (otherwise, // cluster infrastructure pods that are being pulled or started can block // test pods from running, and tests that ensure all pods are running and // ready will fail). if err := waitForPodsRunningReady(api.NamespaceSystem, testContext.MinStartupPods, podStartupTimeout); err != nil { t.Errorf("Error waiting for all pods to be running and ready: %v", err) return } // Run tests through the Ginkgo runner with output to console + JUnit for Jenkins var r []ginkgo.Reporter if *reportDir != "" { r = append(r, reporters.NewJUnitReporter(path.Join(*reportDir, fmt.Sprintf("junit_%02d.xml", config.GinkgoConfig.ParallelNode)))) } glog.Infof("Starting e2e run; %q", runId) ginkgo.RunSpecsWithDefaultAndCustomReporters(t, "Kubernetes e2e suite", r) }
func TestSystem(t *testing.T) { RegisterFailHandler(Fail) junitReporter := reporters.NewJUnitReporter("junit_system.xml") RunSpecsWithDefaultAndCustomReporters(t, "System Suite", []Reporter{junitReporter}) }
func TestConfig(t *testing.T) { RegisterFailHandler(Fail) junitReporter := reporters.NewJUnitReporter("junit_agentconfig.xml") RunSpecsWithDefaultAndCustomReporters(t, "Agent Config Suite", []Reporter{junitReporter}) }
func TestAvailability(t *testing.T) { RegisterFailHandler(Fail) junitReporter := reporters.NewJUnitReporter("junit_availability.xml") RunSpecsWithDefaultAndCustomReporters(t, "Availability Suite", []Reporter{junitReporter}) }
func NewJUnitReporter(config Config, componentName string) *reporters.JUnitReporter { return reporters.NewJUnitReporter(jUnitReportFilePath(config, componentName)) }