如何在Jest中更新快照时强制执行'testPattern'?

时间:2017-09-04 05:44:20

标签: jestjs

Snapshot testing可用于测试UI组件。如果UI组件发生更改,则还应更新快照以反映快照。我们可以指定'testNamePattern'来更新特定测试的快照。

 $(document).ready(function () {
        $('#confirm').on('click', function () {
            bootbox.confirm("Are You Sure ?", function (result) {
                if(result == true){
                    window.location.href = $('#confirm').attr('href');
                } 
            });
            return false;
        }); 
    });

更新快照时是否可以强制执行'testNamePattern'?这有助于避免错误地更新其他失败的快照。据我所知,它有望在代码审查阶段陷入困境。但是,我想确保始终针对特定模式更新快照。

1 个答案:

答案 0 :(得分:0)

截至目前,根据doc,没有任何CLI选项可以执行此操作。我在testFrameworkScriptFile添加了一个小片段,以确保在更新快照时传递testNamePattern



import yargs from 'yargs';
const mandateTestNamePattern = () => {
    const args = yargs.option('testNamePattern', {
        type: 'string'
    }).option('t', {
        type: 'string'
    }).argv;

    if (args.updateSnapshot || args.u) {
        if (args.testNamePattern || args.t) {
            // valid case
        } else {
            throw new Error('TestNamePattern is mandatory while updating snapshots');
        }
    }
};

mandateTestNamePattern();