Как запускать Dart-тесты в IntelliJ с включенным экспериментом NNBD?

#dart #intellij-idea

#dart #intellij-идея

Вопрос:

Я нахожусь на Dart 2.10.0-92.0.dev и пытаюсь перенести свои библиотеки на использование null-safey / non-nullable / NNBD.

Я включил эксперимент в analysis_options.yaml , и анализатор в IntelliJ корректно отображает ошибки и предупреждения.

Я могу успешно запускать тесты из командной строки и в IntelliJ с помощью приложения командной строки Dart, передав --enable-experiment=non-nullable в качестве опции виртуальной машины.

Мне непонятно, как я могу запустить Dart-тест в IntelliJ? Я продолжаю получать следующую ошибку, и я не могу понять, как передать флаг эксперимента?

 Error: This requires the null safety language feature, which is experimental.
You can enable the experiment using the '--enable-experiment=non-nullable' command line option.
  

Комментарии:

1. пожалуйста, проголосуйте за youtrack.jetbrains.com/issue/WEB-25687 получать уведомления о любом прогрессе в этом

2. Спасибо, я поддержал отчет об ошибке и связал этот вопрос в комментариях.

Ответ №1:

Сегодняшнее обновление плагина Dart добавляет поле «Параметры виртуальной машины» в конфигурацию тестового запуска Dart. Нажмите Справка -> Проверить наличие обновлений… в IDE, чтобы получить его.

Ответ №2:

Что вам нужно сделать, так это указать --enable-experiment=non-nullable в параметрах виртуальной машины при редактировании конфигурации: введите описание изображения здесь

Комментарии:

1. Как я пишу, это работает для конфигураций запуска / отладки приложения из командной строки Dart , но у меня нет такой опции для Dart-теста .

Ответ №3:

Чтобы запустить конфигурацию Dart-тестов с включенным NNBD, вам необходимо добавить VMOptions в файл «run configuration» :

  1. Проверьте параметры «Сохранить как файл проекта» в окне «Редактировать конфигурацию»,
  2. Откройте сгенерированный файл конфигурации ( YOUR_PROJECT/.idea/runConfigurations/YOUR_RUN_TEST.xml ) и добавьте эту строку перед параметром filePath :
 <option name="VMOptions" value="--enable-experiment=non-nullable --no-sound-null-safety" />
  

Ваш файл должен выглядеть как :

 <component name="ProjectRunConfigurationManager">
  <configuration default="false" name="my tests" type="DartTestRunConfigurationType" factoryName="Dart Test" nameIsGenerated="true">
    <option name="VMOptions" value="--enable-experiment=non-nullable --no-sound-null-safety" />
    <option name="filePath" value="$PROJECT_DIR$/srv/ytbx021-run-api/app" />
    <option name="scope" value="FOLDER" />
    <method v="2" />
  </configuration>
</component>
  
  1. Затем запустите свои тесты, он завершится неудачей еще раз, но при следующем запуске он должен выполняться в режиме безопасности null.