• Orleans 初接触(二) 测试用例


     【返回导航

      在简单了解了Orleans 之后我们可以通过几个例子去加深印象

    一、快速入门示例

       这个例子也是跟着《Microsoft Orleans 之 入门指南》(https://www.cnblogs.com/endv/p/6147976.html)这篇文章做的

      上篇笔记中的连个例子说明了开发的具体步骤以及需要引用的类库,还有客户端如何去调用,接下来的例子是如何去使用创建相应的单元测试,

      1.创建

      这次我们通过Orleans Tools for Visual Studio去创建Orleans 的项目

      首先使用模板先创建

      Sample.Interfaces1

      Sample.Implements1

      Server1

      三个项目,具体代码参考上篇笔记的第二个例子。

      接下来我们创建一个单元测试程序库 Sample.Test1

      引用项目Sample.Implements1、Sample.Interfaces1

      引用NuGet包 Microsoft.Orleans.TestingHost

      项目结构如下:

      

      我们创建一个测试类就叫UserServiceTest,继承自Orleans 测试库TestingSiloHost

      测试代码如下:

    namespace Sample.Test
    {
        [TestClass]
        public class UserServiceTest: TestingSiloHost
        {
            [ClassCleanup]
            public static void ClassCleanup()
            {
                // Optional. 
                // By default, the next test class which uses TestignSiloHost will
                // cause a fresh Orleans silo environment to be created.
                StopAllSilosIfRunning();
            }
    
            [TestMethod]
            public async void TestExist()
            {
                var grain = GrainFactory.GetGrain<IUserService>(10);
                bool bo = await grain.Exist("18612478956");
                Assert.IsTrue(bo);
            }
        }
    }

      记得增加两个配置文件,

      ClientConfigurationForTesting.xml

    <?xml version="1.0" encoding="utf-8" ?>
    <ClientConfiguration xmlns="urn:orleans">
      <Gateway Address="localhost" Port="40000"/>
      <!-- To turn tracing off, set DefaultTraceLevel="Off" and have no overrides.
        For the trace log file name, {0} is replaced by "Client" and {1} is the current time. -->
      <Tracing DefaultTraceLevel="Info" TraceToConsole="false" TraceToFile="{0}-{1}.log" BulkMessageLimit="1000">
        <TraceLevelOverride LogPrefix="Runtime" TraceLevel="Info" />
        <TraceLevelOverride LogPrefix="Application" TraceLevel="Info" />
        <TraceLevelOverride LogPrefix="AssemblyLoader" TraceLevel="Warning" />
      </Tracing>
      <Statistics MetricsTableWriteInterval="300s" PerfCounterWriteInterval="30s" LogWriteInterval="300s" WriteLogStatisticsToTable="true" StatisticsCollectionLevel="Info"/>
      <Messaging ResponseTimeout="30s" ClientSenderBuckets="8192" MaxResendCount="0"/>
    </ClientConfiguration>

      OrleansConfigurationForTesting.xml

    <?xml version="1.0" encoding="utf-8"?>
    <OrleansConfiguration xmlns="urn:orleans">
      <Globals>
        <StorageProviders>
          <Provider Type="Orleans.Storage.MemoryStorage" Name="MemoryStore" />
          <Provider Type="Orleans.Storage.MemoryStorage" Name="Default" />
          <!--<Provider Type="Orleans.Storage.AzureTableStorage" Name="AzureStore"/>-->
        </StorageProviders>
        <SeedNode Address="localhost" Port="22222"/>
        <Messaging ResponseTimeout="30s"/>
      </Globals>
      <Defaults>
        <Networking Address="localhost" Port="22222"/>
        <ProxyingGateway Address="localhost" Port="40000" />
        <Tracing DefaultTraceLevel="Info" TraceToConsole="false" TraceToFile="{0}-{1}.log" PropagateActivityId="false" BulkMessageLimit="1000">
          <TraceLevelOverride LogPrefix="Application" TraceLevel="Info" />
          <!--
           <TraceLevelOverride LogPrefix="Runtime.Dispatcher" TraceLevel="Verbose" />
           <TraceLevelOverride LogPrefix="AssemblyLoader.Silo" TraceLevel="Warning" />
           -->
        </Tracing>
        <Statistics MetricsTableWriteInterval="30s" PerfCounterWriteInterval="30s" LogWriteInterval="300s" WriteLogStatisticsToTable="true" StatisticsCollectionLevel="Info"/>
      </Defaults>
    </OrleansConfiguration>

      更改xml文件属性为:如果较新则复制

      测试项目结构如下:

      

      按照文档里面所述,测试项目的就已经编写完成了,直接可以开始测试,但是当我调试test的时候,却导致了一个错误,如下图所示:

      

       这个问题没找到解决方案,下面将直接对官方文档以及官方文档上提供的教程开始学习。

  • 相关阅读:
    centOS 6.5下升级mysql,从5.1升级到5.6
    利用PHP脚本辅助MySQL数据库管理5-检查异常数据
    利用PHP脚本辅助MySQL数据库管理4-两个库表结构差异比较
    利用PHP脚本辅助MySQL数据库管理3-删除重复表索引
    利用PHP脚本辅助MySQL数据库管理2-表主键表索引
    利用PHP脚本辅助MySQL数据库管理1-表结构
    Linux驱动设计——内存与IO访问
    Linux驱动设计—— 驱动调试技术
    Linux系统编程@终端IO
    Linux驱动设计—— 内外存访问
  • 原文地址:https://www.cnblogs.com/amber-L/p/7884461.html
Copyright © 2020-2023  润新知