Cypress

npm install @tracera/cypress

يتطلب Node.js ≥ 22.19 وCypress ≥ 14 (انظر محوّلات الاختبار الآلي). @tracera/cypress على npm.

في cypress.config.ts:

import { defineConfig } from 'cypress';
import { registerTraceraPlugin } from '@tracera/cypress';

export default defineConfig({
  e2e: {
    setupNodeEvents(on, config) {
      return registerTraceraPlugin(on, config);
    },
    supportFile: 'cypress/support/e2e.ts',
  },
});

في ملف الدعم:

import '@tracera/cypress/support';

لاختبار المكوّنات (Component Testing)، استدعِ registerTraceraPlugin من component.setupNodeEvents واستورد نفس مدخل الدعم من ملف دعم CT.

مع إعادة المحاولة يُبلَّغ عن محاولة Cypress النهائية فقط. إن كانت إعادة محاولة (retry > 0) تظهر CYPRESS_RETRY في تبويب Env (1 تعني التشغيل الثاني).

متغيرات البيئة ووضع التشغيل: محوّلات الاختبار الآلي.

ربط testCaseId و autotestName

استورد tracera / annotations من @tracera/cypress/runtime، أو استخدم cy.traceraTestCase بعد استيراد الدعم. إن لم تُحدّد autotestName، يستخدم المحوّل عنوان اختبار Cypress.

عند التصريح (المفضّل — الربط يعمل حتى مع this.skip() المبكر):

import { annotations } from '@tracera/cypress/runtime';

it('login', annotations(42, 'e2e/login'), () => {
  cy.visit('/login');
  cy.get('[data-testid=sign-in]').should('be.visible');
});

داخل الاختبار (اختياري إذا ربطت annotations الحالة مسبقًا):

import { tracera } from '@tracera/cypress/runtime';

it('login', () => {
  tracera.testCase(42, 'e2e/login');
  cy.visit('/login');
  cy.get('[data-testid=sign-in]').should('be.visible');
});

أو: cy.traceraTestCase(42, "e2e/login").

الخطوات

استخدم tracera.step (أو cy.traceraStep). بعد import "@tracera/cypress/support"، خطافات beforeEach / afterEach القياسية مُجهَّزة — الخطوات داخلها تذهب إلى الإعداد / التنظيف.

import { tracera } from '@tracera/cypress/runtime';

beforeEach(() => {
  tracera.step('open shop', () => {
    cy.visit('/shop');
  });
});

it('checkout', () => {
  tracera.testCase(10, 'e2e/checkout');
  tracera.step('add to cart', () => {
    cy.get('[data-testid=add]').click();
  });
});

afterEach(() => {
  tracera.step('cleanup', () => {
    // …
  });
});

التعليقات والأخطاء والمرفقات

داخل الخطوة حقول تلك الخطوة. خارج الخطوة حقول النتيجة. 10 مرفقات كحد أقصى للنتيجة و10 لكل خطوة. تُمرَّر لقطات الشاشة عند الفشل عند تسجيل الإضافة.

import { tracera } from '@tracera/cypress/runtime';

it('login', () => {
  tracera.testCase(42, 'e2e/login');
  tracera.comment('result-level note');
  tracera.error('result-level error text');

  tracera.step('open login', () => {
    cy.visit('/login');
    tracera.comment('landed on login');
    tracera.attachment({
      fileName: 'suite-log.txt',
      mimeType: 'text/plain',
      data: 'finished login flow',
    });
  });
});