Cypress文件上传错误与cypress-file-upload

mst*_*std 2 vuejs2 cypress

在我的 vue/cli 4 / Bootstrap 4.3 应用程序中,我使用 vue-upload-component 组件来上传文件,并且工作正常。我想添加 cypress 来测试文件上传,我将https://github.com/abramenal/cypress-file-upload/tree/v3.5.3添加到我的项目中,但此测试失败。我在 vue 文件中有:

    <file-upload
            ref="upload"
            v-model="imageFiles"
            post-action="/post.method"
            put-action="/put.method"
            @input-file="inputFile"
            @input-filter="inputFilter"
            :multiple="false"
            class="btn btn-outline-secondary btn-sm m-2 file-input-class"
            data-cy="file-input"
    >
        <i :class="'action_link '+getHeaderIcon('upload')"></i>Upload image
    </file-upload>

    ...
   const VueUploadComponent = require('vue-upload-component')
   Vue.component('file-upload', VueUploadComponent)
Run Code Online (Sandbox Code Playgroud)

在我的浏览器中,它呈现为:

<span class="btn btn-outline-secondary btn-sm m-2 file-input-class file-uploads file-uploads-html5" data-cy="file-input">
    <i class="action_link fa fa-upload"></i>
    Upload image  
    <label for="file"></label> 
    <input type="file" name="file" id="file">
</span>
Run Code Online (Sandbox Code Playgroud)

我柏树测试文件我做:

        import 'cypress-file-upload'
        describe('Admin category fileupload functionality', () => {
            ...
            const fileName = '/sample_images/sample.png';

            cy.contains('Image Preview/Upload')

            cy.fixture(fileName).then(fileContent => {
                //  cy.find('#file')
                //     .should('have.value', 'Invalid Text')

                console.log('++Inside Tests cy::')
                console.log(cy)

                cy.get('#file').upload({ fileContent, fileName, mimeType: 'image/png' });
            });
Run Code Online (Sandbox Code Playgroud)

但是在控制台中我得到了错误:

THEN function(){}
TypeError: cy.get(...).upload 不是函数

我看到 cy var 的下一个输出:

在此处输入图片说明

同样在上面的测试代码中取消注释 2 行:

cy.find('#file')
    .should('have.value', 'Invalid Text')
Run Code Online (Sandbox Code Playgroud)

正如我所料,我没有应该错误,我不明白为什么?

如何进行文件上传测试?

"axios": "^0.19.0",
"cypress-file-upload": "^4.0.6",
"file-saver": "^2.0.2",
"vue": "^2.6.10",
"vue-upload-component": "^2.8.20",
Run Code Online (Sandbox Code Playgroud)

谢谢!

Pea*_*iet 5

你显示的"^4.0.6"是你的cypress-file-upload版本。最新版本版本 3.5.3之间存在差异。

从4.0.0 版本开始,暴露的命令已更改upload()attachFile()

在此处输入图片说明

最新版本中还有一个注释说它目前不稳定。也许您应该恢复到 3.5.3 并保持代码不变。