1つのテストの実行のみを切り替えたいので、他のテストが1つのテストの結果を確認するのを待つ必要はありません。
現在、他のテストをコメントアウトしていますが、これは本当に面倒です。
Cypress
で1つのテストのみを実行するように切り替える方法はありますか?
cypress run --spec path/to/file.spec.js
またはグロブパターンを使用して
注:シェルの展開を回避するには、グロブパターンを一重引用符で囲む必要があります。
cypress run --spec 'path/to/files/*.spec.js'
はい、.only
サイプレスのドキュメント で説明されています
it.only('only run this one', () => {
})
it('not this one', () => {
})
また、describe
およびcontext
ブロックでも同じことができます
また、追加/削除を行うためのNice VSCode
拡張機能もあります.only
はキーボードショートカットで簡単になりました。これはTest Utilsと呼ばれます(js、coffee、TypeScriptで動作します):
これを実現する方法はいくつかあります。
.only
to it
またはdescribe
@bkuceraの回答を参照npx cypress run --record --spec "cypress/integration/my-spec.js" npm run cypress -- --record --spec "cypress/integration/my-spec.js"
(現在のテストで)実行する必要のないテストをスキップする方法が1つあり、それを使用する方法は次のとおりです:this.skip();
it('test page', function () {
// skip this test for now
this.skip();
cy.visit('http://example.com/')
cy.contains('test page').click()
cy.url()
.should('include', '/test-page/')
})
1。通常の関数を2番目の引数として使用することが重要です。これは、矢印関数では使用できません
2。 this.skip()をどこに書き込んでも、テスト全体がスキップされます
x
をtestrunnerメソッドの呼び出しに追加することで、不要なテストスイートや特定のケースをミュートできます(describe
、it
など)。
したがって、次のようになります。
// this whole testsuite will be muted
xdescribe('Visit google', () => {
it('should visit google', () => { cy.visit('https://google.com/'); });
});
// this testsuite will run
describe('Visit youtube', () => {
it('should visit youtube', () => { cy.visit('https://youtube.com/'); });
// this testcase will be muted
xit('is not necessary', () => { ... });
});
このようにしてテストを実行できます。
cypress run --spec **/file.js