Page 1 of 1

Conditional If testcase fails then else

Posted: Wed Sep 12, 2012 7:55 pm
by byonush
I am currently working on automating all system checks for the service desk. I am trying to have the last test case view the previous test case and update a database table based on if the previous test failed or succeeded. I am able to get to update the database but having problems on the IF statement and where I need to be looking to grab the previous test case status. What I have in the last recording is a usercode in VB.
Imports System
Imports System.Collections.Generic
Imports System.Text
Imports System.Text.RegularExpressions
Imports System.Drawing
Imports System.Threading
Imports WinForms = System.Windows.Forms
Imports System.Data
Imports System.Data.SqlClient
Imports Console = System.Console

Imports Ranorex
Imports Ranorex.Core
Imports Ranorex.Core.Testing
Imports Ranorex.Core.Reporting

Namespace WDP_Check.CheckStatus

    Public Partial Class FinalStatus

       
        Dim con As New SqlConnection
        Dim cmd As New SqlCommand

       ''' <summary>
        ''' This method gets called right after the recording has been started.
        ''' It can be used to execute recording specific initialization code.
        ''' </summary>
        Private Sub Init()
            ' Your recording specific initialization code goes here.
        End Sub

        Public Sub FinalResuts()
        If (TestSuite.Current.GetTestCase("Launch_WDP_Report").Status.Success.Success) Then
        con.ConnectionString = "Data Source=PET1SQL;Initial Catalog=Staging;Integrated Security=SSPI" & ";"
        con.Open
        cmd.Connection = con
        cmd.CommandText = "UPDATE Systems_Check SET Status='Passed' WHERE Task='WDP'"
        cmd.ExecuteNonQuery()
        cmd.CommandText = "UPDATE Systems_Check SET DateTime= GETDATE() WHERE Task='WDP'"
        cmd.ExecuteNonQuery()
        con.Close()
        Else
        con.ConnectionString = "Data Source=PET1SQL;Initial Catalog=Staging;Integrated Security=SSPI" & ";"
        con.Open()
        cmd.Connection = con
        cmd.CommandText = "UPDATE Systems_Check SET Status='Failed' WHERE Task='WDP'"
        cmd.ExecuteNonQuery()
        cmd.CommandText = "UPDATE Systems_Check SET DateTime= GETDATE() WHERE Task='WDP'"
        cmd.ExecuteNonQuery()
        con.Close()
        End If
        End Sub
        

    End Class
End Namespace
I have also tried
Public Sub SetStatusPassed()
        If TestReport.CurrentTestSuiteActivity.Status.("Success") Then
        con.ConnectionString = "Data Source=PET1SQL;Initial Catalog=Staging;Integrated Security=SSPI" & ";"
        con.Open
        cmd.Connection = con
        cmd.CommandText = "UPDATE Systems_Check SET Status='Passed' WHERE Task='WDP'"
        cmd.ExecuteNonQuery()
        cmd.CommandText = "UPDATE Systems_Check SET DateTime= GETDATE() WHERE Task='WDP'"
        cmd.ExecuteNonQuery()
        con.Close()
        Report.Success("Database Updated as Passed")
        End If
        End Sub

Re: Conditional If testcase fails then else

Posted: Thu Sep 13, 2012 3:37 pm
by Support Team
Hi,

If you want to check the state from a previous test case you can use the following code:
ITestCase iCase = TestSuite.Current.GetTestCase("TestCase1"); // The name of your Test Case  
          if(iCase.Status == Ranorex.Core.Reporting.ActivityStatus.Failed){  
            Report.Info("TestCase1 Failed!");  
          }
If you want to check the state of the actual test case you have to place the following code in the tear down section of the test case:
if (Ranorex.Core.Testing.TestCase.Current.Status.Equals(Ranorex.Core.Reporting.ActivityStatus.Failed))
    //...
else
    //...
Regards,
Markus
Ranorex Support Team

Re: Conditional If testcase fails then else

Posted: Thu Jun 27, 2013 7:44 pm
by omayer
ITestCase iCase = TestSuite.Current.GetTestCase("CompAddContact"); // The name of your Test Case
if(iCase.Status == Ranorex.Core.Reporting.ActivityStatus.Failed){
Report.Info("CompAddContact Failed!");
}

Following Error returned

The type or namespace name 'Current' does not exist in the namespace 'TestSuite' (are you missing an assembly reference?) (CS0234) - C:\..\TestCases\Company\CompanySendCheckedContactsAnEmailNoTemplate.cs:98,37

Re: Conditional If testcase fails then else

Posted: Fri Jun 28, 2013 1:55 pm
by Support Team
Hi,

I checked the code but in my case it worked as expected. Are you sure you are using the right namespaces and assemblies?
Could it be that one of your classes is named "TestSuite"?

Regards,
Markus

Re: Conditional If testcase fails then else

Posted: Fri Jun 28, 2013 4:22 pm
by omayer
My project name is "TestSuite" where I do execute all test cases

Re: Conditional If testcase fails then else

Posted: Mon Jul 01, 2013 2:31 pm
by Support Team
Hello,

That's the reason for the error.
There is already a class in Ranorex defined with the name "TestSuite". Please choose another name for your project and your code should work.
Please do not use names in your project, which are already used in the Ranorex library.

Regards,
Bernhard