【问题标题】:How do I Know if compiler is in Test mode ?我如何知道编译器是否处于测试模式?
【发布时间】:2021-05-13 23:02:16
【问题描述】:

我正在尝试为我的实际项目设置测试环境,但无法连接到我的测试数据库,我们没有模拟。

我使用一些代码来确定是这样的设计时间还是运行时间:

        ConnectionStringSettings connString = null;
        string myConnString = null;
        bool designMode = (LicenseManager.UsageMode == LicenseUsageMode.Designtime);
        if (designMode)
        {
            connString = new ConnectionStringSettings()
            {
                ConnectionString = "metadata=res://*/Seguridad.csdl|res://*/Seguridad.ssdl|res://*/Seguridad.msl;provider=System.Data.SqlClient;provider connection string=\"data source=****ServerName****;initial catalog=****DbName****;persist security info=True;user id=****user****;password=****pwd****;MultipleActiveResultSets=True;App=EntityFramework\""
            };
            DebugConnection Cx = DebugModeConnections.GetConnection("Desarrollo");
            _usuario = Cx.Usuario;
            _password = Cx.Password;
            _ServerName = Cx.Server;
            _DbName = Cx.Db;
        }
        else
        {
            foreach (ConnectionStringSettings conn in ConfigurationManager.ConnectionStrings)
            {
                if (conn.Name == ConfiguracionApp.NombreContextoDb)
                    connString = conn;
            }
        }

它适用于我的设计和运行时,并允许我使用真实数据进行 GUI 设计。但是现在我想实施测试,但它并没有像我预期的那样工作。

有一种方法可以确定编译器是否处于测试时间或我可以使用的 LicenseManager.UsageMode 之类的东西?

【问题讨论】:

  • “测试模式”是什么意思?
  • 如果您看到我的代码,我使用 LicenseManager.UsageMode 来确定如何连接到我的数据库,有一种方法可以确定我的代码是否正在运行或被调用以进行测试?
  • @LasseV.Karlsen 这意味着 muy 代码如何知道它是否被测试框架调用。或者换句话说,有一种方法可以让我的代码知道测试框架是否正在运行?
  • 您使用哪个框架进行测试?
  • 您可能会在这个问题中找到一些有用的信息:stackoverflow.com/q/3167617/5311735

标签: c#


【解决方案1】:

既然您在 cmets 中告诉您使用 VS 测试框架,那么您应该有一个测试项目。 如果您的文件在测试项目中链接(不是作为 dll 或其他项目),您可以在项目属性的 条件编译符号 下定义自定义符号,例如 TESTING然后做一个简单的

#if TESTING
// this code is compiled only in tests
#endif

注意:您必须对所有配置 (Debug|Release) 和平台 (x86,AnyCpu) 执行此操作。

【讨论】:

    猜你喜欢
    • 2010-12-20
    • 2016-11-28
    • 2016-08-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-03
    相关资源
    最近更新 更多