如何测试为客户端和服务器端制作的Dart包?

时间:2016-09-24 22:42:47

标签: testing dart

我正在创建一个既提供客户端又提供客户端的库。服务器端代码。在进行测试时,我想测试双方的互动。

到目前为止,我至少进行过这些测试:

服务器端:

@TestOn("vm")
import "package:test/test.dart";
import "dart:io";
//...
void main() {
    HttpServer server = HttpServer.bind(InternetAddress.LOOPBACK_IP_V4, 4040)
    //.then()...

Cliente方面:

@TestOn("content-shell")
import "package:test/test.dart";
import "dart:html";
//...
void main(){
    //Interact with server at 4040

如果使用单个命令运行所有测试,我该怎么做?有可能吗?

2 个答案:

答案 0 :(得分:2)

在我看来,

@TestOn("content-shell")没有多大意义,除非此测试不应在其他浏览器中运行。请改用browser

如果没有@TestOn()(默认),测试将在任何平台上运行。如果要限制运行测试的位置,请仅添加@TestOn(...)

使用单个命令运行浏览器测试和服务器测试

pub run test -pvm -pdartium -pchrome -pfirefox -pie -pblink

或稍短一点

pub run test -pvm,dartium,chrome,firefox,ie,blink

readme中的https://github.com/dart-lang/test/tree/master/doc和文档提供了有关如何配置测试运行器的大量详细信息。

答案 1 :(得分:2)

如Günter提供的the docs中所述,在程序包的根目录中创建 dart_test.yaml

#dart_test.yaml

#run 2 test suites at the same time (I guess, that in 2 different cores)
concurrency: 2 

现在运行

  

pub run test test / server.dart test / client.dart -pvm,content-shell

如果需要很长时间(通常在打开浏览器时),您可以添加到相同的配置文件中:

timeout: none #or i.e., 1m 30s

您还可以通过获取配置文件来保存命令的 -pvm,content-shell 部分:

platforms:
- vm
- content-shell

如果这不起作用,你可以节省我运行时弄清楚发生了什么的时间:

  

pub cache repair