intellitest - не удалось сгенерировать ни одного теста в x прогонах - PullRequest
0 голосов
/ 15 октября 2018

Я не могу создать контрольные примеры с помощью intellitest.После исправления проблем я всегда приходил к выводу, что получаю предупреждение: «Не удалось сгенерировать ни одного теста в x прогонах». Есть ли какой-то ручной шаг, которому нужно следовать?или это предупреждение приходит из-за плохого кода или могут быть какие-то ограничения со стороны Intellitest Framework.

Есть идеи, пожалуйста?Последние несколько дней я пытался: /

У меня есть класс с именем "HolidaySetupComponent".Я хочу создать контрольные примеры для этого метода класса «GetEmailContent (string emailtypeTag)».

Ниже приведен мой код.

public class HolidaySetupComponent
{
    private string table1;
    private string table2;
    private string table3;
    public String _CompanyId;
     int _CompId;

    string connectionString= ConfigurationManager.ConnectionStrings["HCMSConnectionString"].ConnectionString;
    DataServices dataservice = new DataServices();

    public HolidaySetupComponent()
    {
        dataservice.BeginProcess(connectionString);
        table1 = "tblHoliday";
        table2 = "tblSetupsDetail";
        table3 = "tblEmailHistory";
        _CompanyId = Utilities.GetCompanyId();
    }
    public DataSet GetEmailContent(string emailtypeTag)
    {
        DataSet ds = new DataSet();
        int emailtypetagId = 0;
        if (emailtypeTag == "NationalTab")
        {
            emailtypetagId = 4;
        }
        else { emailtypetagId = 5; }
        string whereclause = "EmailType  = " + emailtypetagId + "AND CompanyId =" + Utilities.GetCompanyId();
        string result = dataservice.GetDataWithClause("*", "tblEmailContentCreation", whereclause, ref ds);

        return ds;
    }
}

public static class Utilities
{
    static DataServices dataService = new DataServices();
    static DataServices dataServiceAuditTrail = new DataServices();

    public Utilities()
    {
        dataService.BeginProcess(ConfigurationManager.ConnectionStrings["HCMSConnectionString"].ConnectionString);
        dataServiceAuditTrail.BeginProcess(ConfigurationManager.ConnectionStrings["vCurioAuditTrailConnectionString"].ConnectionString);
    }

    public static String GetCompanyId()
    {
    var _clientIP = HttpContext.Current.Request.Headers.GetValues("login");
    string prefix = Utilities.GetPrefix(_clientIP[0]);
    string _loginDetail = Utilities.GetKeyInRedis(prefix + "OtherData");
    DataTable dtloginDetail = (DataTable)JsonConvert.DeserializeObject(_loginDetail, (typeof(DataTable)));
    String _CompanyId = String.Empty;
    if (dtloginDetail != null && dtloginDetail.Rows.Count != 0)
    {
        DataRow drloginDetail = dtloginDetail.Rows[0];
        _CompanyId = drloginDetail["CompanyId"].ToString();
    }

    return _CompanyId;
    }
}

Когда я нажимаю «Выполнить intellitest» на «GetEmailContent (string emailtypeTag) "Метод существует в" holidaySetupComponent "Я получил следующие предупреждения.

снимок предупреждений

На этом этапе, как я понимаю, мне нужно исправить это предупреждение, поэтому явыбрал все предупреждения для этих параметров и применил исправление.

  • Создание объекта (2)
  • Неинструментированный метод (4)

Параметр «Исправить» был отключендля оставления предупреждений под предупреждением ниже, поэтому я "Supperss" эти предупреждения

  • Предупреждение времени выполнения
  • Хранение статического поля

После применения этих исправлений intellitest создал фабрикукласс "HolidaySetupComponentFactory" для создания объекта "HolidaySetupComponent"

public static partial class HolidaySetupComponentFactory
{
    ///<summary>A factory for HolidaySetupComponent instances</summary>
    [PexFactoryMethod(typeof(global::HolidaySetupComponent))]
    public static global::HolidaySetupComponent Create(string _CompanyId_s)
    {
    global::HolidaySetupComponent holidaySetupComponent
       = new global::HolidaySetupComponent();
    holidaySetupComponent._CompanyId = _CompanyId_s;
    return holidaySetupComponent;

    // TODO: Edit factory method of HolidaySetupComponent
    // This method should be able to configure the object in all possible ways.
    // Add as many parameters as needed,
    // and assign their values to each field by using the API.
    }
}

, а также добавил эти строки в PexAssemblyInfo.cs с помощью intellitest, когда я "подавляю" предупреждения.

[assembly: PexInstrumentAssembly("System.Configuration")]
[assembly: PexInstrumentType(typeof(Attribute))]
[assembly: PexInstrumentType(typeof(TextReader))]
[assembly: PexSuppressStaticFieldStore("System.ComponentModel.ReflectTypeDescriptionProvider", "_intrinsicTypeConverters")]
[assembly: PexSuppressStaticFieldStore(typeof(AttributeCollection), "_defaultAttributes")]
[assembly: PexSuppressStaticFieldStore("System.ComponentModel.ReflectTypeDescriptionProvider", "_attributeCache")]
[assembly: PexInstrumentAssembly("System.Xml")]
[assembly: PexSuppressExplorableEvent(typeof(global::HolidaySetupComponent))]

После этого я получаю «Предупреждение во время выполнения», которое я не могу удалить

Окончательное предупреждение

Нужна помощь !!!

Спасибо

...