Подавить Vue предупреждения в модульных тестах - PullRequest
0 голосов
/ 04 декабря 2018

Я пытаюсь подавить свои предупреждения в своих тестах, следуя конфигурации, указанной здесь: 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 должен делать?

1 Ответ

0 голосов
/ 03 июня 2019

В соответствии с документами VueJS - https://vue -test-utils.vuejs.org / api / config.html # silent

silent

type: Boolean

default: true

Подавляет предупреждения, инициируемые 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}`)
    }
  }
...