Подавить предупреждения Vue в модульных тестах

Я пытаюсь подавить свои предупреждения в своих тестах, следуя конфигурации, указанной здесь: https://vue-test-utils.vuejs.org/api/config.html#silent, который выглядит следующим образом:

import { config } from '@vue/test-utils';

// this should actually be the default but the default is not working
config.silent = true;

Однако я все еще вижу предупреждение в результатах теста:

  TheQueue
✓ should show the queue bar if there are items queued
✓ should show the correct count of queued items in queued bar
[Vue warn]: Avoid mutating a prop directly since the value will be 
overwritten whenever the parent component re-renders. Instead, use a 
data or computed property based on the prop's value. Prop being 
mutated: "mdTemplateData"

found in

---> <MdTab>
       <MdContent>
         <MdTabs>
           <MdDrawer>
             <TheQueue> at src/components/the-queue/TheQueue.vue
               <Root>

Стоит отметить, что я не вижу этой ошибки при обычном использовании приложения. Это появляется только в тестах (иначе я попытался бы исправить фактическую предложенную проблему).

Что я здесь делаю неправильно и почему я не могу подавить это предупреждение? Или я неправильно понимаю, что должен делать silent?


person boardlemur    schedule 04.12.2018    source источник
comment
Я также пытаюсь отключить предупреждения Vue в модульных тестах, но, насколько я понял, прочитав vue-test-utils исходный код, этот silent атрибут конфигурации срабатывает только при использовании setProps в ваших тестах.   -  person P3trur0    schedule 04.02.2019
comment
Есть прогресс в этом? у меня такая же проблема   -  person Lioo    schedule 25.03.2019
comment
Я знаю, что вы задавали его 6 месяцев назад, но я вижу ваш вопрос только сейчас, надеюсь, он вам поможет.   -  person Ali Bahrami    schedule 08.06.2019


Ответы (1)


Согласно документам VueJS — https://vue-test-utils.vuejs.org/api/config.html#silent

тихо

тип: логический

по умолчанию: правда

Он подавляет предупреждения, запускаемые Vue при изменении наблюдаемых компонентов (например, свойств). Если установлено значение false, все предупреждения отображаются в консоли. Это настраиваемый способ, который опирается на Vue.config.silent.

который зависит от Vue.config.silent, поэтому все, что вам нужно, это импортировать vue пакет и установить для него config.silent значение false.

import Vue from `vue`
Vue.config.silent = true;

Я разместил рабочий пример здесь, в моем Github, это просто форк официального примера, но он не показывает предупреждений во время тестов.

https://github.com/al1b/vue-test-utils-getting-started

Для получения дополнительной информации:

Если вы проверите исходный код :

  warn = (msg, vm) => {
    const trace = vm ? generateComponentTrace(vm) : ''

    if (config.warnHandler) {
      config.warnHandler.call(null, msg, vm, trace)
    } else if (hasConsole && (!config.silent)) {
      console.error(`[Vue warn]: ${msg}${trace}`)
    }
  }
person Ali Bahrami    schedule 03.06.2019