Напишите unittest и сохраните в отдельной папке

Я пытаюсь написать unittest для своего класса. Прежде всего, я устанавливаю пакет unittest и создаю специальную папку для сохранения всех моих файлов unittest. Затем я создаю тестовый файл дротика со следующим содержимым:

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 в папке спецификации, я думаю, это потому, что компилятор не смог найти пакет unittest.
Структура моей папки выглядит так:
введите здесь описание изображения

Что я не так?


person softshipper    schedule 17.06.2014    source источник


Ответы (1)


Ошибка вызвана отсутствием символической ссылки packages в папке spec. см. 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';

но эта форма не очень удобна для рефакторинга.

person Günter Zöchbauer    schedule 17.06.2014
comment
не могли бы вы показать мне, где я должен разместить папку lib? - person softshipper; 17.06.2014
comment
сделать lib родным братом bin и test (i18n/lib). см. также dartlang.org/tools/pub/package-layout.html - person Günter Zöchbauer; 17.06.2014