Kompilasi hasil dari semua rangkaian pengujian dalam laporan tingkat

Laporan tingkat hanya melaporkan rangkaian pengujian terakhir yang telah dijalankan.

Saya telah menyiapkan tes Selenium dengan 10 setelan berbeda yang dijalankan secara berurutan. Masalahnya adalah Extent Report hanya mencatat hasil rangkaian terakhir. Saya telah mencoba berbagai cara menerapkan laporan untuk mengumpulkan semua hasil.

Struktur kode: Kelas BaseSetUp - inisialisasi driver (OneTimeSetUp, SetUp, TearDown, OnetimeTearDown)

Panggilan metode umum - mewarisi dari BaseSetUp

PageObject Page - dapatkan semua Objek Halaman

TestSuits - Mewarisi dari metode Umum.

Saya memiliki laporan di kelas BaseSetUp seperti ini:

[OneTimeSetUp]
    public void Setup()
    {

        try
        {
            extent = new ExtentReports();
            var dir = AppDomain.CurrentDomain.BaseDirectory.Replace("\\bin\\Debug", "");
            var htmlReporter = new ExtentHtmlReporter(dir + "\\Test_Execution_Reports" + "\\Automation_Report" + ".html");
            extent.AddSystemInfo("Environment", "Xylect AT");
            extent.AddSystemInfo("User Name", "Lucas");
            extent = new ExtentReports();
            extent.AttachReporter(htmlReporter);


        }
        catch (Exception e)
        {
            throw (e);
       }}



 [SetUp]
    public void BeforeTest()
    {
        try
        {
            _test = extent.CreateTest(TestContext.CurrentContext.Test.Name);
        }
        catch (Exception e)
        {
            throw (e);
        }
    }


    [TearDown]
    public void AfterTest()
    {
        try
        {
            var status = TestContext.CurrentContext.Result.Outcome.Status;
            var stacktrace = "" + TestContext.CurrentContext.Result.StackTrace + "";
            var errorMessage = TestContext.CurrentContext.Result.Message;
            Status logstatus;
            switch (status)
            {
                case TestStatus.Failed:
                    logstatus = Status.Fail;
                    string screenShotPath = Capture(driver, TestContext.CurrentContext.Test.Name);
                    _test.Log(logstatus, "Test ended with " + logstatus + " – " + errorMessage);
                    _test.Log(logstatus, "Snapshot below: " + _test.AddScreenCaptureFromPath(screenShotPath));

                    break;
                case TestStatus.Skipped:
                    logstatus = Status.Skip;
                    _test.Log(logstatus, "Test ended with " + logstatus);
                    break;
                default:
                    logstatus = Status.Pass;
                    _test.Log(logstatus, "Test ended with " + logstatus);
                    break;
            }


        }
        catch (Exception e)
        {
            throw (e);
        }
    }

   [OneTimeTearDown]
    public void TearDown()
    {

        try
        {

            //zip();
            //Email();
            extent.Flush();
            driver.Close();
            driver.Quit();
        }
        catch (Exception e)
        {

            throw (e);
        }

    }

Saya telah melihat beberapa metode di mana laporan sebelumnya ditambahkan ke laporan "baru" yang dibuat, tetapi saya tidak berhasil.

Contoh testcase di salah satu testsuite

        [TestCase(TestName = "01_LogIn"), Order(1)]
    public void LogIn()
    {
        LogIn();
        string loginAssert = HomePage.expLoginName.Text;
        Assert.IsTrue(loginAssert.Contains("Hi, " + username + ""), "Login falied");

    }

Ada ide tentang bagaimana saya harus maju?

Laporan jangkauan berjalan V4


person Lucas    schedule 10.09.2019    source sumber
comment
apakah OneTimeSetUp berjalan setiap kali suite baru mulai dijalankan? maka Anda memiliki masalah ini   -  person Sureshmani Kalirajan    schedule 10.09.2019
comment
Ya, benar. bagaimana seharusnya?   -  person Lucas    schedule 11.09.2019
comment
Saya memerlukan informasi lebih lanjut tentang cara pengaturan suite? Bagaimana Anda memicu uji coba - testng runner?atau metode utama.? sejauh mana pembuatan objek laporan harus dilakukan hanya sekali selama eksekusi Anda. lihat apakah Anda dapat menyusun logika untuk menyiapkannya hanya sekali dan meneruskan laporan ke rangkaian lainnya.   -  person Sureshmani Kalirajan    schedule 11.09.2019


Jawaban (1)


Anda cukup mengikuti tautan ini. Saya harap ini menyelesaikan masalah Anda.

Anda harus membuat 3 kelas.

BaseFixture.cs
ExtentManager.cs
ExtentTestManager.cs

Setelah itu, Anda dapat menginisialisasi BaseFixture di setiap kelas pengujian.

[TestFixture, Parallelizable(ParallelScope.Fixtures)]
    public class MemberLogInOut : BaseFixture

https://github.com/anshooarora/extentreports-csharp/tree/master/ExtentReports/ExtentReports.Tests/Parallel

person murthy    schedule 12.09.2019
comment
Terima kasih! Saya akan mencoba pengaturan seperti yang dijelaskan di tautan. Namun saya mendapatkan kesalahan di kelas ExtentManager pada metode htlm.Configuration(). Dari mana metode ini? - person Lucas; 13.09.2019
comment
Hai, Lukas. maaf saya tidak mengerti apa yang Anda katakan. Lagi pula apakah mungkin untuk membagikan kode Anda di sini?. Saya akan mencoba. versi ExtentReports mana yang Anda gunakan? - person murthy; 16.09.2019
comment
berhasil sekarang.. Saya tidak bisa membagikan kodenya kecuali kode yang diberikan dari laporan tingkat, karena perusahaan. Terima kasih untuk bantuannya! - person Lucas; 16.09.2019
comment
Bagus... Kerja bagus. - person murthy; 17.09.2019