github.com/redhat-appstudio/e2e-tests@v0.0.0-20230619105049-9a422b2094d7/cmd/e2e_test.go (about) 1 package cmd 2 3 import ( 4 "fmt" 5 "os" 6 "strconv" 7 "testing" 8 9 "github.com/redhat-appstudio/e2e-tests/pkg/framework" 10 11 "github.com/onsi/ginkgo/v2" 12 "github.com/onsi/ginkgo/v2/types" 13 "github.com/onsi/gomega" 14 15 _ "github.com/redhat-appstudio/e2e-tests/tests/build" 16 _ "github.com/redhat-appstudio/e2e-tests/tests/byoc" 17 _ "github.com/redhat-appstudio/e2e-tests/tests/cluster-registration" 18 _ "github.com/redhat-appstudio/e2e-tests/tests/e2e-demos" 19 _ "github.com/redhat-appstudio/e2e-tests/tests/enterprise-contract" 20 _ "github.com/redhat-appstudio/e2e-tests/tests/integration-service" 21 _ "github.com/redhat-appstudio/e2e-tests/tests/mvp-demo" 22 _ "github.com/redhat-appstudio/e2e-tests/tests/o11y" 23 _ "github.com/redhat-appstudio/e2e-tests/tests/release" 24 _ "github.com/redhat-appstudio/e2e-tests/tests/spi" 25 26 "flag" 27 28 "github.com/spf13/viper" 29 30 "k8s.io/klog/v2" 31 ) 32 33 var _ = ginkgo.SynchronizedBeforeSuite(func() []byte { 34 return nil 35 }, func(data []byte) {}) 36 37 var webhookConfigPath string 38 var demoSuitesPath string 39 var generateRPPreprocReport bool 40 var rpPreprocDir string 41 var polarionOutputFile string 42 var polarionProjectID string 43 var generateTestCases bool 44 45 func init() { 46 rootDir, _ := os.Getwd() 47 flag.StringVar(&webhookConfigPath, "webhookConfigPath", "", "path to webhook config file") 48 flag.StringVar(&demoSuitesPath, "config-suites", fmt.Sprintf(rootDir+"/tests/e2e-demos/config/default.yaml"), "path to e2e demo suites definition") 49 flag.BoolVar(&generateRPPreprocReport, "generate-rppreproc-report", false, "Generate report and folders for RP Preproc") 50 flag.StringVar(&rpPreprocDir, "rp-preproc-dir", ".", "Folder for RP Preproc") 51 flag.StringVar(&polarionOutputFile, "polarion-output-file", "polarion.xml", "Generated polarion test cases") 52 flag.StringVar(&polarionProjectID, "project-id", "AppStudio", "Set the Polarion project ID") 53 flag.BoolVar(&generateTestCases, "generate-test-cases", false, "Generate Test Cases for Polarion") 54 55 klog.SetLogger(ginkgo.GinkgoLogr) 56 57 verbosity := 1 58 if v, err := strconv.ParseUint(os.Getenv("KLOG_VERBOSITY"), 10, 8); err == nil { 59 verbosity = int(v) 60 } 61 62 flags := &flag.FlagSet{} 63 klog.InitFlags(flags) 64 if err := flags.Set("v", fmt.Sprintf("%d", verbosity)); err != nil { 65 panic(err) 66 } 67 } 68 69 func TestE2E(t *testing.T) { 70 klog.Info("Starting Red Hat App Studio e2e tests...") 71 // Setting viper configurations in cache 72 viper.Set("config-suites", demoSuitesPath) 73 74 gomega.RegisterFailHandler(ginkgo.Fail) 75 ginkgo.RunSpecs(t, "Red Hat App Studio E2E tests") 76 } 77 78 var _ = ginkgo.SynchronizedAfterSuite(func() {}, func() { 79 //Send webhook only it the parameter configPath is not empty 80 if len(webhookConfigPath) > 0 { 81 klog.Info("Send webhook") 82 framework.SendWebhook(webhookConfigPath) 83 } 84 }) 85 86 var _ = ginkgo.ReportAfterSuite("RP Preproc reporter", func(report types.Report) { 87 if generateRPPreprocReport { 88 //Generate Logs in dirs 89 framework.GenerateRPPreprocReport(report, rpPreprocDir) 90 //Generate modified JUnit xml file 91 resultsPath := rpPreprocDir + "/rp_preproc/results/" 92 if err := os.MkdirAll(resultsPath, os.ModePerm); err != nil { 93 klog.Error(err) 94 } 95 err := framework.GenerateCustomJUnitReport(report, resultsPath+"xunit.xml") 96 if err != nil { 97 klog.Error(err) 98 } 99 } 100 }) 101 102 var _ = ginkgo.ReportAfterSuite("Polarion reporter", func(report types.Report) { 103 if generateTestCases { 104 framework.GeneratePolarionReport(report, polarionOutputFile, polarionProjectID) 105 } 106 })