รายงานขอบเขตจะรายงานเฉพาะชุดทดสอบล่าสุดที่มีการเรียกใช้เท่านั้น
ฉันได้ตั้งค่าการทดสอบซีลีเนียมโดยใช้ชุดที่แตกต่างกัน 10 ชุดซึ่งดำเนินการตามลำดับ ปัญหาคือว่ารายงานขอบเขตจะบันทึกเฉพาะผลลัพธ์ของชุดสุดท้ายเท่านั้น ฉันได้ลองใช้วิธีต่างๆ ในการนำรายงานไปใช้เพื่อรวบรวมผลลัพธ์ทั้งหมด
โครงสร้างรหัส: BaseSetUp Class - เริ่มต้นไดรเวอร์ (OneTimeSetUp, SetUp, TearDown, OnetimeTearDown)
การเรียกวิธีการทั่วไป - สืบทอดจาก BaseSetUp
PageObject Page - รับวัตถุหน้าทั้งหมด
TestSuits - สืบทอดมาจากวิธีการทั่วไป
ฉันมีรายงานในคลาส BaseSetUp ดังนี้:
[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);
}
}
ฉันเคยเห็นวิธีการสองสามวิธีที่เพิ่มรายงานก่อนหน้าลงในรายงานที่สร้างขึ้น "ใหม่" แต่ฉันไม่สามารถใช้งานได้
ตัวอย่างชุดทดสอบในชุดทดสอบชุดใดชุดหนึ่ง
[TestCase(TestName = "01_LogIn"), Order(1)]
public void LogIn()
{
LogIn();
string loginAssert = HomePage.expLoginName.Text;
Assert.IsTrue(loginAssert.Contains("Hi, " + username + ""), "Login falied");
}
มีความคิดเห็นใดบ้างว่าฉันควรก้าวไปข้างหน้าอย่างไร?
การรันรายงานขอบเขต V4