2017-05-08 10 views
0

현재 Specflow에서 프로젝트를 디자인하고 있습니다. 내 프로젝트에 몇 가지보고를 구현하고 싶습니다. 현재 하나의 .cs 파일을 만들고 모든 보고서 설정을 유지했습니다. 그러나 이러한 단계는 도달 할 수 없습니다. 누구든지 내 흐름을 디자인 할 수있는 방법과 기능 파일과 통합 할 수있는 방법을 안내해 주시겠습니까? 아래의 BaseReport.cs 파일과 내 단계 정의 파일을 찾으십시오.Specflow Project에서 보고서 (범위 보고서)를 생성하는 방법

namespace Verivox.CommonLib 
{ 

    public class BaseReport 
    { 
     public static ExtentReports extent; 
     public static ExtentTest test; 

     [BeforeFeature()] 
     public static void BasicSetUp() 
     { 
      //string pth = System.Reflection.Assembly.GetCallingAssembly().CodeBase; 
      string pth = System.IO.Directory.GetCurrentDirectory(); 
      string actualPath = pth.Substring(0, pth.LastIndexOf("bin")); 
      string projectPath = new Uri(actualPath).LocalPath; 

      string reportPath = projectPath + "Reports\\" + FeatureContext.Current.FeatureInfo.Title + ".html"; 

      extent = new ExtentReports(reportPath, true); 

      extent.LoadConfig(projectPath + "CommonLib\\Extent-config.xml"); 

     } 

     [BeforeScenario()] 
     public static void BeforeScenarioSetUp() 
     { 

      test = extent.StartTest("Running Scenario -->" + ScenarioContext.Current.ScenarioInfo.Title); 
     } 

     [AfterScenario()] 
     public static void AfterScnario() 
     { 
      if (ScenarioContext.Current.TestError != null) 
      { 
       var error = ScenarioContext.Current.TestError; 
       var errormessage = "<pre>" + error.Message + "</pre>"; 
       //Add capture screen shot line here 

       extent.EndTest(test); 

      } 
     } 

     [AfterFeature()] 
     public static void EndReport() 
     { 
      extent.Flush(); 
      // extent.Close(); 
     } 
    } 
} 

단계

namespace Verivox.Steps 
    { 
     [Binding] 
     class CalculationVerificationSteps 
     { 
      [Given(@"I have navigate to Home Page")] 
      public void GivenIHaveNavigateToHomePage() 
      { 
       Browser.Current.Navigate().GoToUrl(ConfigurationManager.AppSettings["seleniumBaseUrl"]); 
       PropertyCollection.currentPage = new HomePage(); 
       Browser.Current.Manage().Timeouts().ImplicitlyWait(TimeSpan.FromSeconds(10)); 

      } 

      [Given(@"Navigate to Mobile Calculator under All Comparison Section")] 
      public void GivenNavigateToMobileCalculatorUnderAllComparisonSection() 
      { 

       PropertyCollection.currentPage.As<HomePage>().MainCompItemClick("Telekommunikation"); 
       PropertyCollection.currentPage.As<HomePage>().SubCompItemClick("Mobilfunk"); 
       PropertyCollection.currentPage.As<HomePage>().CalculatorLinkClick("Mobiles Internet"); 

      } 

      [Then(@"Mobile Calculator should appear")] 
      public void ThenMobileCalculatorShouldAppear() 
      { 
       Assert.IsTrue(PropertyCollection.currentPage.As<HomePage>().IsMobileInternetCalcExistance()); 
      } 

      [Then(@"(.*) option and (.*) option is selected by default\.")] 
      public void ThenMonatsflatrateOptionAndSIMOptionIsSelectedByDefault_(string defaultTarif, string hardware) 
      { 
       try 
       { 
        Assert.IsTrue(PropertyCollection.currentPage.As<HomePage>().VerifyMobiIntSelectedItem(defaultTarif)); 
        string colorCode = PropertyCollection.currentPage.As<HomePage>().VerifySelectedHardWare(); 
        Assert.AreEqual(0, string.Compare("rgba(253, 138, 2, 1)", colorCode, StringComparison.OrdinalIgnoreCase)); 
       } 
       catch (Exception) 
       { 
        BaseReport.test.Log(LogStatus.Fail, "Default selections are incorrect."); 
       } 


      } 
+0

코드 서식을 수정 해주십시오. 그것은 약간 읽을 수 없습니다. –

답변

0

당신은 BaseReport 클래스에 바인딩 - 속성이 누락되었습니다. 그것 없이는 거기에 정의 된 후크가 호출되지 않습니다.