来自 meteortesting:mocha 的乱码测试结果输出
Garbled test result output from meteortesting:mocha
推荐的 Meteor 1.7 测试框架似乎是 meteortesting:mocha
。
我使用 Meteor 1.7.0.3 创建了一个默认应用程序 (meteor create my-app
),它具有以下测试(在 test/main.js
中)
import assert from "assert";
describe("my-app", function () {
it("package.json has correct name", async function () {
const { name } = await import("../package.json");
assert.strictEqual(name, "noteit");
});
if (Meteor.isClient) {
it("client is not server", function () {
assert.strictEqual(Meteor.isServer, false);
});
}
if (Meteor.isServer) {
it("server is not client", function () {
assert.strictEqual(Meteor.isClient, false);
});
}
});
我运行
meteor add meteortesting:mocha
meteor test --driver-package meteortesting:mocha
和 meteortesting:mocha
@2.4.5_6 我在控制台中得到了这个:
I20180728-12:06:37.729(2)? --------------------------------
I20180728-12:06:37.729(2)? ----- RUNNING SERVER TESTS -----
I20180728-12:06:37.729(2)? --------------------------------
I20180728-12:06:37.729(2)?
I20180728-12:06:37.730(2)?
I20180728-12:06:37.731(2)?
I20180728-12:06:37.737(2)? the server
✓ fails a test.753(2)?
I20180728-12:06:37.755(2)?
I20180728-12:06:37.756(2)?
I20180728-12:06:37.756(2)? 1 passing (26ms)
I20180728-12:06:37.756(2)?
I20180728-12:06:37.757(2)? Load the app in a browser to run client tests, or set the TEST_BROWSER_DRIVER environment variable. See https://github.com/meteortesting/meteor-mocha/blob/master/README.md#run-app-tests
=> Exited with code: 0
=> Your application is crashing. Waiting for file change.
其实重复了三遍。不漂亮。而且我没想到通过测试会使我的应用程序崩溃。
我也在浏览器中得到了这个
,我期待更像好的输出
与大多数东西一样 Node.js,几乎任何东西都有大量的分支。 meteortesting:mocha
.
也是如此
cultofcoders:mocha
似乎是 practicalmeteor:mocha
的 a few commits ahead,这曾一度是 Meteor 推荐的测试框架。
如果你运行
meteor add cultofcoders:mocha
meteor test --driver-package cultofcoders:mocha
你会得到很好的输出。
出于好奇,我发现我得到的 cultofcoders:mocha
版本 (meteor list | grep mocha
) 是 2.4.6,github 仓库没有的版本...
您引用的屏幕截图是使用 practicalmeteor:mocha
制作的,但 meteortesting:mocha
不是(正如其他答案所声称的那样)它的一个分支,而是一个单独开发的包,目的相同目标,即 运行 宁的 Meteor 测试。
包的用法非常不同,practicalmeteor:mocha
设置起来可能有点棘手,此列表仅适用于它的版本 1.0.1
,以后可能会更改。
但我不得不承认文档需要更新...无论如何,这里有一些有用的提示,我很快就会将其包含在文档中。
如果你只是想开始,运行这个:
meteor add meteortesting:mocha
npm i --save-dev puppeteer@^1.5.0
TEST_BROWSER_DRIVER=puppeteer meteor test --driver-package meteortesting:mocha --raw-logs --once
你想在测试完成后退出还是在文件更改后重新运行它们?
通常,Meteor 会在您的应用程序退出时(正常退出或崩溃)重新启动您的应用程序,其中包括测试-运行ner.
如果您想在您的 CI 之一中使用它,或者您只想 运行 测试一次,请将 --once
添加到 meteor-command,否则设置 TEST_WATCH=1
在 运行 宁此脚本之前。如果你没有设置 env 变量,也没有定义 --once
,Meteor 将打印这些行并在它们完成后重新启动测试:
=> Exited with code: 0
=> Your application is crashing. Waiting for file change.
到目前为止,我还没有找到一种方法来检查标志 --once
是否已设置,这将省略 env 变量。此处在 CI 和连续测试之间进行选择的灵活性非常有用。
也许您目前正在开发一项功能并希望在工作时运行 进行测试。如果你设置了 TEST_WATCH=1
并且没有使用 --once
,Meteor 将在注册文件被更改后重新启动测试。您甚至可以使用 MOCHA_GREP
.
限制测试集合
您想在哪里以及如何查看结果?
您目前必须选择是在命令行中查看所有测试结果,还是在命令行中显示服务器测试并在浏览器中显示客户端测试。目前 practicalmeteor:mocha
不支持在浏览器中显示服务器和客户端测试的结果,如您的屏幕截图所示。
请查看软件包文档以获取更多详细信息:
您应该禁用 Meteor 时间戳以使其看起来更好。
由于每一行都添加了时间戳,测试可能看起来很冒险。为避免这种情况,请将 --raw-logs
添加到您的命令中。
我希望这能回答您的大部分问题。我知道文档需要一些改进,如果有人愿意花时间为 "just want to get started".
推荐的 Meteor 1.7 测试框架似乎是 meteortesting:mocha
。
我使用 Meteor 1.7.0.3 创建了一个默认应用程序 (meteor create my-app
),它具有以下测试(在 test/main.js
中)
import assert from "assert";
describe("my-app", function () {
it("package.json has correct name", async function () {
const { name } = await import("../package.json");
assert.strictEqual(name, "noteit");
});
if (Meteor.isClient) {
it("client is not server", function () {
assert.strictEqual(Meteor.isServer, false);
});
}
if (Meteor.isServer) {
it("server is not client", function () {
assert.strictEqual(Meteor.isClient, false);
});
}
});
我运行
meteor add meteortesting:mocha
meteor test --driver-package meteortesting:mocha
和 meteortesting:mocha
@2.4.5_6 我在控制台中得到了这个:
I20180728-12:06:37.729(2)? --------------------------------
I20180728-12:06:37.729(2)? ----- RUNNING SERVER TESTS -----
I20180728-12:06:37.729(2)? --------------------------------
I20180728-12:06:37.729(2)?
I20180728-12:06:37.730(2)?
I20180728-12:06:37.731(2)?
I20180728-12:06:37.737(2)? the server
✓ fails a test.753(2)?
I20180728-12:06:37.755(2)?
I20180728-12:06:37.756(2)?
I20180728-12:06:37.756(2)? 1 passing (26ms)
I20180728-12:06:37.756(2)?
I20180728-12:06:37.757(2)? Load the app in a browser to run client tests, or set the TEST_BROWSER_DRIVER environment variable. See https://github.com/meteortesting/meteor-mocha/blob/master/README.md#run-app-tests
=> Exited with code: 0
=> Your application is crashing. Waiting for file change.
其实重复了三遍。不漂亮。而且我没想到通过测试会使我的应用程序崩溃。
我也在浏览器中得到了这个
与大多数东西一样 Node.js,几乎任何东西都有大量的分支。 meteortesting:mocha
.
cultofcoders:mocha
似乎是 practicalmeteor:mocha
的 a few commits ahead,这曾一度是 Meteor 推荐的测试框架。
如果你运行
meteor add cultofcoders:mocha
meteor test --driver-package cultofcoders:mocha
你会得到很好的输出。
出于好奇,我发现我得到的 cultofcoders:mocha
版本 (meteor list | grep mocha
) 是 2.4.6,github 仓库没有的版本...
您引用的屏幕截图是使用 practicalmeteor:mocha
制作的,但 meteortesting:mocha
不是(正如其他答案所声称的那样)它的一个分支,而是一个单独开发的包,目的相同目标,即 运行 宁的 Meteor 测试。
包的用法非常不同,practicalmeteor:mocha
设置起来可能有点棘手,此列表仅适用于它的版本 1.0.1
,以后可能会更改。
但我不得不承认文档需要更新...无论如何,这里有一些有用的提示,我很快就会将其包含在文档中。
如果你只是想开始,运行这个:
meteor add meteortesting:mocha
npm i --save-dev puppeteer@^1.5.0
TEST_BROWSER_DRIVER=puppeteer meteor test --driver-package meteortesting:mocha --raw-logs --once
你想在测试完成后退出还是在文件更改后重新运行它们?
通常,Meteor 会在您的应用程序退出时(正常退出或崩溃)重新启动您的应用程序,其中包括测试-运行ner.
如果您想在您的 CI 之一中使用它,或者您只想 运行 测试一次,请将 --once
添加到 meteor-command,否则设置 TEST_WATCH=1
在 运行 宁此脚本之前。如果你没有设置 env 变量,也没有定义 --once
,Meteor 将打印这些行并在它们完成后重新启动测试:
=> Exited with code: 0
=> Your application is crashing. Waiting for file change.
到目前为止,我还没有找到一种方法来检查标志 --once
是否已设置,这将省略 env 变量。此处在 CI 和连续测试之间进行选择的灵活性非常有用。
也许您目前正在开发一项功能并希望在工作时运行 进行测试。如果你设置了 TEST_WATCH=1
并且没有使用 --once
,Meteor 将在注册文件被更改后重新启动测试。您甚至可以使用 MOCHA_GREP
.
您想在哪里以及如何查看结果?
您目前必须选择是在命令行中查看所有测试结果,还是在命令行中显示服务器测试并在浏览器中显示客户端测试。目前 practicalmeteor:mocha
不支持在浏览器中显示服务器和客户端测试的结果,如您的屏幕截图所示。
请查看软件包文档以获取更多详细信息:
您应该禁用 Meteor 时间戳以使其看起来更好。
由于每一行都添加了时间戳,测试可能看起来很冒险。为避免这种情况,请将 --raw-logs
添加到您的命令中。
我希望这能回答您的大部分问题。我知道文档需要一些改进,如果有人愿意花时间为 "just want to get started".