#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» :
- Проверьте параметры «Сохранить как файл проекта» в окне «Редактировать конфигурацию»,
- Откройте сгенерированный файл конфигурации ( 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>
- Затем запустите свои тесты, он завершится неудачей еще раз, но при следующем запуске он должен выполняться в режиме безопасности null.