我正在尝试为我的类(class)编写单元测试。首先,我安装了 unittest 包并创建了一个 spec 文件夹来保存我所有的 unittest 文件。然后我创建一个包含以下内容的测试 Dart 文件:
library i18n_test;
import 'package:unittest/unittest.dart';
void main() {
}
当我运行文件时,出现以下错误
Unable to open file: D:\Dart\i18n\bin\spec\packages\unittest\unittest.dart'file:///D:/Dart/i18n/bin/spec/i18n_test.dart': error: line 3 pos 1: library handler failed
import 'package:unittest/unittest.dart';
正如我所提到的,我将我的 unittest 文件保存在 spec 文件夹中,我认为这是因为编译器找不到包 unittest。
我的文件夹结构如下所示:
我错了什么?
最佳答案
该错误是由缺少 packages
引起的。 spec
中的符号链接(symbolic link)文件夹。
见 https://code.google.com/p/dart/issues/detail?id=16947
反正
单元测试应放入 test
文件夹 (i18n/test
)。
这样,您的测试代码将不会包含在构建输出中。
最好将大部分代码放在 lib
中。文件夹,以便使用包导入轻松导入测试,例如:
import 'package:i18n/my_dart_file.dart';
您应该仍然可以从
bin
导入或 web
使用相对导入,例如import '../bin/my_dart_file.dart';
但这种形式对重构不是很友好。
关于unit-testing - 编写 unittest 并保存在单独的文件夹中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24262568/