【问题标题】:Dart Unit Test Doesn't WorkDart 单元测试不起作用
【发布时间】:2013-02-20 16:42:04
【问题描述】:

我的单元测试在 Dartium 中没有显示任何内容。它应该显示单元测试结果,但它没有显示任何内容。我的代码如下:

import "package:unittest/unittest.dart";
import "package:unittest/html_config.dart";
import "../../bolsaviaje/web/bolsaviaje.dart" as bolsaviaje;

void main() {
  useHtmlConfiguration();
  test("PackItem constructor", (){
    var item = new bolsaviaje.Cosa("Towel");
    expect(item,isNotNull);
  });

  test("PackItem itemtext propery",(){
    var item = new bolsaviaje.Cosa("Towel");
    expect(item.nombre,equals("Towel"));
  });
}

我的 pubspec.yaml 如下:

name: PackListTest
description: A sample web application
dependencies:
  unittest: any

我的 pubspec.lock 如下:

    # Generated by pub. See: http://pub.dartlang.org/doc/glossary.html#lockfile
     {"packages":{"unittest":{"version":"0.4.1","source":"hosted","description":"unittest"},"meta":{"version":"0.4.1+1","source":"hosted","description":"meta"}}}

我用于单元测试的 HTML 文件的内容如下:

<!DOCTYPE html>

<html>
  <head>
    <meta charset="utf-8">
    <title>PackListTest</title>
    <link rel="stylesheet" href="packlisttest.css">
  </head>
  <body>
    <script type="application/dart" src="packlisttest.dart"></script>
  </body>
</html>

我使用的 Dart 版本是 Dart M3。

我在两者中都没有获得任何东西:在 Dartium 控制台中什么都没有,在生成的 html 中什么也没有。

不得不说我有两个项目:一个是web应用,另一个是我的单元测试项目。

非常感谢您的帮助。

【问题讨论】:

  • 你能把pubspec.yaml、pubspec.lock的内容和你正在使用的SDK或Editor的版本发布出来吗?谢谢!
  • 另外,您能否提出您用于驱动测试的 HTML 文件的内容?
  • 这里有一堆有效的测试,也许你可以比较一下你在做什么? github.com/sethladd/lawndart/tree/master/test
  • 你在 Dartium 控制台和 HTML 中得到了什么?
  • 我已经用 Seth Ladd 和 Kai Sellgren 向我询问的信息更新了我的原始帖子。谢谢大家!

标签: unit-testing dart


【解决方案1】:

您需要在 HTML 中添加以下内容

<script src="packages/browser/dart.js"></script>

并将以下依赖项添加到 pubspec.yaml

dependencies:
  browser: any

Dartium 现在也使用dart.js 来引导应用程序。

【讨论】:

  • 我已经添加了你的建议,但结果是一样的,dart 控制台和网页都是空白的。我可以把我的项目发给你吗?
  • 问题出在这一行: import "../../bolsaviaje/web/bolsaviaje.dart" as bolsaviaje;即使我指定了完整路径,Dart 似乎也无法正确解析路径: import "C:/Users/mercadra/Documents/Dart/BolsaViaje/web/bolsaviaje.dart";正如我所说,我有两个应用程序:一个是 Web 应用程序本身,另一个是我的单元测试项目。两者在文件夹结构中处于同一级别。我不知道这是否是使用单元测试时的约束。
  • Dart 编辑器有一个内置的服务器,可以为项目结构中的任何内容提供服务。如果您正在引用项目结构之外的文件,那么您可能会遇到问题。快速测试:在 Dartium 中,你能浏览到文件bolsaviaje.dart 吗? (另外,请随意压缩和发送文件 - 使用我个人资料中的联系方式)
【解决方案2】:

我已经解决了我的问题。我做了两个动作。第一个是将我的单元测试移动到我的应用程序所在的同一文件夹中。第二个是将此行添加到我的 .dart 应用程序文件的第 1 行:

library "whatever"

库的名称是什么并不重要,因为在我的 .dart 单元测试文件中我写了:

import "bolsaviaje.dart"

这是我的应用程序的名称

如果您遇到同样的问题,我希望此解决方案可以帮助您。

另一方面,我不知道将应用程序和单元测试放在两个不同的文件夹中是否存在相关限制。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-10-23
    • 1970-01-01
    • 2023-03-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多