Rumah > hujung hadapan web > tutorial js > Pengujian Sistem

Pengujian Sistem

DDD
Lepaskan: 2024-12-18 13:00:17
asal
550 orang telah melayarinya

System Testing

Ikhtisar

Mengapa Penulis Drama?

Ia lebih pantas dan lebih baharu daripada Selenium dan mempunyai sintaks yang lebih jelas daripada Capybara-DSL, lihat Perbincangan.

Perhatian Penulis drama boleh digunakan dengan Capybara DSL, yang boleh dikatakan bagus untuk projek sedia ada. Tetapi, sekurang-kurangnya dalam ujian saya, ia tidak mungkin untuk mengkonfigurasinya supaya spesifikasi sedia ada yang ditulis dalam Capybara-DSL boleh berterusan. Saya terpaksa menulis semula.

Penulis drama dalam Rails/RSpec

Diperoleh daripada Dokumen

Persediaan

  • Alih keluar semua Selenium-gems
  • tambah permata capybara dalam ujian kumpulan
  • tambahkan penulis drama-ruby-client permata dalam ujian kumpulan
  • npm i --save-dev penulis drama (tidak seperti dokumen, jangan pasangnya oleh npx i ... kerana ia tidak akan memasang kebergantungan)

Fail seperti playwright_helper

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

require 'rails_helper'

require 'capybara'

require 'playwright'

 

RSpec.configure do |config|

 

  # ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

  # Docs https://playwright-ruby-client.vercel.app/docs/article/guides/rails_integration_with_null_driver

  # ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

 

  video_dir = '/tmp/rails-system-test-videos'

 

  config.before :all, type: :system do

    FileUtils.rm_rf(video_dir)

    FileUtils.mkdir(video_dir)

  end

 

  class CapybaraNullDriver < Capybara::Driver::Base

    def needs_server?

      true

    end

  end

 

  Capybara.register_driver(:null) { CapybaraNullDriver.new }

 

  config.around(driver: :null) do |example|

    driven_by :null

    Playwright.create(playwright_cli_executable_path: './node_modules/.bin/playwright') do |playwright|

      playwright.chromium.launch(headless: true) do |browser|

        browser.new_context(

          record_video_dir: video_dir,

          baseURL: Capybara.current_session.server.base_url

        ) do |context|

 

          # for requests this timeout can be too short, but for most steps it should be good

          # You can increase this in every selector on the test

          context.set_default_timeout(1500.0)

 

          @page = context.new_page

 

          # custom login process

          page.goto('/login-page', timeout: 50000) # first load may last longer

          ...

 

          example.run

 

        end

        if passed?

          FileUtils.rm(page.video.path)

        else

          puts "file://#{page.video.path}"

        end

      end

    end

  end

 

end

Salin selepas log masuk

dan ujian:

1

2

3

4

5

6

7

8

9

10

require 'playwright_helper'

 

RSpec.describe "pw", type: :system, driver: :null do

 

  let(:page) { @page }

 

    it 'test' do

      page.goto('/')

    end

end

Salin selepas log masuk

Ikhtisar

Atas ialah kandungan terperinci Pengujian Sistem. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:dev.to
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan