【返回导航】
在简单了解了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(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"/>
<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" />
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" />
Tracing>
<Statistics MetricsTableWriteInterval="30s" PerfCounterWriteInterval="30s" LogWriteInterval="300s" WriteLogStatisticsToTable="true" StatisticsCollectionLevel="Info"/>
Defaults>
OrleansConfiguration>
更改xml文件属性为:如果较新则复制
测试项目结构如下:
按照文档里面所述,测试项目的就已经编写完成了,直接可以开始测试,但是当我调试test的时候,却导致了一个错误,如下图所示:
这个问题没找到解决方案,下面将直接对官方文档以及官方文档上提供的教程开始学习。