TestCafe - 您可以将 ctx(上下文)变量传递给记者吗?

TestCafe - Can You Pass ctx (Context) Variables to reporter?

我想知道我是否有像 t.ctx.data 这样的上下文变量,是否有办法将 t.ctx.data 的值写入 TestCafe JSON 报告器(或任何记者)?

我的代码:

// Called within Express.js by a request coming from req
const testMySite = (req, res) => {
        process.env.PARAMS = JSON.stringify(req.body)
        let testcafe = null;
        console.log(`Running test on ports 1341 and 1342`)
        createTestCafe('localhost', 1341, 1342, void 0, true)
        .then(tc => {
            testcafe = tc;
            const runner = testcafe.createRunner()
            return runner
            .src(`${path.dirname(__filename)}/tests/gisTest.js`)
            .browsers('firefox:headless')
            .reporter('json', 'report.json')
            .run()
        })
        .then(failedCount => {
            testcafe.close()
        })

        res.json({message: `Success!  Scraper has begun to process ${req.body}`});
}

我的测试代码:

import { ClientFunction, Selector } from 'testcafe';

const doc = process.env.PARAMS
const newDoc = JSON.parse(process.env.PARAMS)
console.log(`newDoc (from test)`, newDoc)
// const _id = newDoc._id
let data = newDoc.mydata

fixture `My Fixture`
    .page('https://www.mysite.co')
    .afterEach(async t => {
        await t
        // how do I get t.ctx.myData into the reporter??
        console.log(`t.ctx.myData: `, t.ctx.myData)
    })

test(`My Test`, async t => {
    const photoIcon = Selector('div#sbtc div.LM8x9c > span')
    const photoFieldForPaste = Selector('input#Ycyxxc')
    const searchByImageButton = Selector('td#aoghAf > input')
    const targetElement = Selector('div#jHnbRc span:nth-child(2) > a')

await t
    .wait(1000)
    .click(photoIcon)
    .typeText(photoFieldForPaste, data, {paste: true})
    .click(searchByImageButton)

    if(await targetElement.exists && await targetElement.visible) {
        await t.ctx.finalData = targetElement.innerText;
    }

    await t.ctx.finalData = null;

})

请参阅// how do I get t.ctx.myData into the reporter??部分。

我假设这是我唯一可以将测试数据输入报告器的地方,但我不确定具体方法。

如果您知道如何将上述代码中显示的 t.ctx.myData 变量写入 JSON 记者,我将不胜感激。

更好的方法是将 t.ctx.myData 值发送到响应中。

目前,您只能向测试和固定装置添加静态元数据。此元数据在报告中可用。详情请参考以下文章:https://devexpress.github.io/testcafe/documentation/guides/basic-guides/organize-tests.html#specify-test-metadata

关于向记者发送动态数据,我们牢记这一点,但我们无法对此做出任何估计。请跟踪以下问题:https://github.com/DevExpress/testcafe/issues/3584