<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[关于本地环境下缩放单元测试可能遇到的席位过期问题]]></title><description><![CDATA[<p>事情是这样的, 一位用户在本地进行 Colyseus 的单元测试的时候遇到了测试不通过的问题.<br />
他的测试环境是 Jest, 操作系统为 MacOS, 测试项目为官方自带脚本.</p>
<pre><code>import { ColyseusTestServer, boot } from &quot;@colyseus/testing&quot;;

// import your &quot;arena.config.ts&quot; file here.
import appConfig from &quot;../src/arena.config&quot;;

describe(&quot;testing your Colyseus app&quot;, () =&gt; {
  let colyseus: ColyseusTestServer;

  beforeAll(async () =&gt; colyseus = await boot(appConfig));
  afterAll(async () =&gt; await colyseus.shutdown());

  beforeEach(async () =&gt; await colyseus.cleanup());

  it(&quot;connecting into a room&quot;, async() =&gt; {
    // `room` is the server-side Room instance reference.
    const room = await colyseus.createRoom(&quot;my_room&quot;, {});

    // `client1` is the client-side `Room` instance reference (same as JavaScript SDK)
    const client1 = await colyseus.connectTo(room);

    // make your assertions
    expect(client1.sessionId).toEqual(room.clients[0].sessionId);
  });
});
</code></pre>
<p>测试进行时, 遇到了报错:</p>
<p><img src="/assets/uploads/files/1644397988112-b8323544-0478-4e83-9f22-eaa15026b6e8-image-resized.png" alt="0_1644397978763_b8323544-0478-4e83-9f22-eaa15026b6e8-image.png" class="img-responsive img-markdown" /></p>
<p>问题解决<br />
推测是由于 Redis 服务器在本地测试环境下造成兼容性问题.<br />
目前的 workaround 是这样的:</p>
<p><img src="/assets/uploads/files/1644653619921-2ed5366b-48bc-4540-9a00-31d6ee32f7c8-image-resized.png" alt="0_1644653613059_2ed5366b-48bc-4540-9a00-31d6ee32f7c8-image.png" class="img-responsive img-markdown" /></p>
<p>修改代码传入 gameserver 而不是 config.ts, 然后测试就可以顺利进行.</p>
<p><img src="/assets/uploads/files/1644653646289-b7249a41-3d6e-4ab6-a8e1-84f8dde3b2cd-image-resized.png" alt="0_1644653645533_b7249a41-3d6e-4ab6-a8e1-84f8dde3b2cd-image.png" class="img-responsive img-markdown" /></p>
<p>此问题并不影响生产环境, 如果未来有官方更新的话会及时汇报.</p>
]]></description><link>http://discuss.colyseus.io/topic/570/关于本地环境下缩放单元测试可能遇到的席位过期问题</link><generator>RSS for Node</generator><lastBuildDate>Sun, 08 Mar 2026 20:43:57 GMT</lastBuildDate><atom:link href="http://discuss.colyseus.io/topic/570.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 09 Feb 2022 09:13:52 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to 关于本地环境下缩放单元测试可能遇到的席位过期问题 on Sat, 12 Feb 2022 15:06:38 GMT]]></title><description><![CDATA[<p>事情是这样的, 一位用户在本地进行 Colyseus 的单元测试的时候遇到了测试不通过的问题.<br />
他的测试环境是 Jest, 操作系统为 MacOS, 测试项目为官方自带脚本.</p>
<pre><code>import { ColyseusTestServer, boot } from &quot;@colyseus/testing&quot;;

// import your &quot;arena.config.ts&quot; file here.
import appConfig from &quot;../src/arena.config&quot;;

describe(&quot;testing your Colyseus app&quot;, () =&gt; {
  let colyseus: ColyseusTestServer;

  beforeAll(async () =&gt; colyseus = await boot(appConfig));
  afterAll(async () =&gt; await colyseus.shutdown());

  beforeEach(async () =&gt; await colyseus.cleanup());

  it(&quot;connecting into a room&quot;, async() =&gt; {
    // `room` is the server-side Room instance reference.
    const room = await colyseus.createRoom(&quot;my_room&quot;, {});

    // `client1` is the client-side `Room` instance reference (same as JavaScript SDK)
    const client1 = await colyseus.connectTo(room);

    // make your assertions
    expect(client1.sessionId).toEqual(room.clients[0].sessionId);
  });
});
</code></pre>
<p>测试进行时, 遇到了报错:</p>
<p><img src="/assets/uploads/files/1644397988112-b8323544-0478-4e83-9f22-eaa15026b6e8-image-resized.png" alt="0_1644397978763_b8323544-0478-4e83-9f22-eaa15026b6e8-image.png" class="img-responsive img-markdown" /></p>
<p>问题解决<br />
推测是由于 Redis 服务器在本地测试环境下造成兼容性问题.<br />
目前的 workaround 是这样的:</p>
<p><img src="/assets/uploads/files/1644653619921-2ed5366b-48bc-4540-9a00-31d6ee32f7c8-image-resized.png" alt="0_1644653613059_2ed5366b-48bc-4540-9a00-31d6ee32f7c8-image.png" class="img-responsive img-markdown" /></p>
<p>修改代码传入 gameserver 而不是 config.ts, 然后测试就可以顺利进行.</p>
<p><img src="/assets/uploads/files/1644653646289-b7249a41-3d6e-4ab6-a8e1-84f8dde3b2cd-image-resized.png" alt="0_1644653645533_b7249a41-3d6e-4ab6-a8e1-84f8dde3b2cd-image.png" class="img-responsive img-markdown" /></p>
<p>此问题并不影响生产环境, 如果未来有官方更新的话会及时汇报.</p>
]]></description><link>http://discuss.colyseus.io/post/1719</link><guid isPermaLink="true">http://discuss.colyseus.io/post/1719</guid><dc:creator><![CDATA[COCO]]></dc:creator><pubDate>Sat, 12 Feb 2022 15:06:38 GMT</pubDate></item><item><title><![CDATA[Reply to 关于本地环境下缩放单元测试可能遇到的席位过期问题 on Invalid Date]]></title><description><![CDATA[<p>感谢教程，有所帮助</p>
]]></description><link>http://discuss.colyseus.io/post/1722</link><guid isPermaLink="true">http://discuss.colyseus.io/post/1722</guid><dc:creator><![CDATA[lyh1091106900]]></dc:creator><pubDate>Invalid Date</pubDate></item></channel></rss>