Как мы будем называть функцию, написанную в отдельном файле, из теста Cypress?

Учитывая, сколько времени (человеко-час) я потратил на то, чтобы мой встроенный адаптер Bluetooth работал на Linux, я решил, что дешевле и быстрее купить USB-адаптер, который действительно работает на Linux. Итак, я вышел домой с ноутбуком, протестировал USB-адаптер и купил его. Это действительно мало и дешево, мне стоило R $ 30,00 (что-то между 9 и 10 долларами, согласно сегодняшним обменным курсам). Он способен передавать файлы и воспроизводить музыку. Его пакет говорит о версии Bbbage Bluetooth версии 3.0 BM-BT01, она была сделана в Китае. На lsusb он отображается как Cambridge Silicon Radio, Ltd Bluetooth Dongle (HCI mode):

# lsusb

Bus 003 Device 002: ID 8087:8001 Intel Corp. 
Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 004: ID 0bda:0129 Realtek Semiconductor Corp. RTS5129 Card Reader Controller
Bus 001 Device 003: ID 1bcf:2c81 Sunplus Innovation Technology Inc. 
Bus 001 Device 011: ID 0a12:0001 Cambridge Silicon Radio, Ltd Bluetooth Dongle (HCI mode)
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

# usb-devices

T:  Bus=01 Lev=00 Prnt=00 Port=00 Cnt=00 Dev#=  1 Spd=480 MxCh=11
D:  Ver= 2.00 Cls=09(hub  ) Sub=00 Prot=01 MxPS=64 #Cfgs=  1
P:  Vendor=1d6b ProdID=0002 Rev=04.11
S:  Manufacturer=Linux 4.11.4-1.gcba98ee-default xhci-hcd
S:  Product=xHCI Host Controller
S:  SerialNumber=0000:00:14.0
C:  #Ifs= 1 Cfg#= 1 Atr=e0 MxPwr=0mA
I:  If#= 0 Alt= 0 #EPs= 1 Cls=09(hub  ) Sub=00 Prot=00 Driver=hub

T:  Bus=01 Lev=01 Prnt=01 Port=00 Cnt=01 Dev#= 11 Spd=12  MxCh= 0
D:  Ver= 1.10 Cls=e0(wlcon) Sub=01 Prot=01 MxPS=16 #Cfgs=  1
P:  Vendor=0a12 ProdID=0001 Rev=01.34
C:  #Ifs= 2 Cfg#= 1 Atr=80 MxPwr=100mA
I:  If#= 0 Alt= 0 #EPs= 3 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb
I:  If#= 1 Alt= 0 #EPs= 2 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb

T:  Bus=01 Lev=01 Prnt=01 Port=06 Cnt=02 Dev#=  3 Spd=480 MxCh= 0
D:  Ver= 2.00 Cls=ef(misc ) Sub=02 Prot=01 MxPS=64 #Cfgs=  1
P:  Vendor=1bcf ProdID=2c81 Rev=00.05
S:  Manufacturer=NC2141103M50708908LM05
S:  Product=HD WebCam
C:  #Ifs= 2 Cfg#= 1 Atr=80 MxPwr=500mA
I:  If#= 0 Alt= 0 #EPs= 1 Cls=0e(video) Sub=01 Prot=00 Driver=uvcvideo
I:  If#= 1 Alt= 0 #EPs= 0 Cls=0e(video) Sub=02 Prot=00 Driver=uvcvideo

T:  Bus=01 Lev=01 Prnt=01 Port=07 Cnt=03 Dev#=  4 Spd=480 MxCh= 0
D:  Ver= 2.00 Cls=ff(vend.) Sub=ff Prot=ff MxPS=64 #Cfgs=  1
P:  Vendor=0bda ProdID=0129 Rev=39.60
S:  Manufacturer=Generic
S:  Product=USB2.0-CRW
S:  SerialNumber=20100201396000000
C:  #Ifs= 1 Cfg#= 1 Atr=a0 MxPwr=500mA
I:  If#= 0 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=06 Prot=50 Driver=rtsx_usb

T:  Bus=02 Lev=00 Prnt=00 Port=00 Cnt=00 Dev#=  1 Spd=5000 MxCh= 4
D:  Ver= 3.00 Cls=09(hub  ) Sub=00 Prot=03 MxPS= 9 #Cfgs=  1
P:  Vendor=1d6b ProdID=0003 Rev=04.11
S:  Manufacturer=Linux 4.11.4-1.gcba98ee-default xhci-hcd
S:  Product=xHCI Host Controller
S:  SerialNumber=0000:00:14.0
C:  #Ifs= 1 Cfg#= 1 Atr=e0 MxPwr=0mA
I:  If#= 0 Alt= 0 #EPs= 1 Cls=09(hub  ) Sub=00 Prot=00 Driver=hub

T:  Bus=03 Lev=00 Prnt=00 Port=00 Cnt=00 Dev#=  1 Spd=480 MxCh= 2
D:  Ver= 2.00 Cls=09(hub  ) Sub=00 Prot=00 MxPS=64 #Cfgs=  1
P:  Vendor=1d6b ProdID=0002 Rev=04.11
S:  Manufacturer=Linux 4.11.4-1.gcba98ee-default ehci_hcd
S:  Product=EHCI Host Controller
S:  SerialNumber=0000:00:1d.0
C:  #Ifs= 1 Cfg#= 1 Atr=e0 MxPwr=0mA
I:  If#= 0 Alt= 0 #EPs= 1 Cls=09(hub  ) Sub=00 Prot=00 Driver=hub

T:  Bus=03 Lev=01 Prnt=01 Port=00 Cnt=01 Dev#=  2 Spd=480 MxCh= 8
D:  Ver= 2.00 Cls=09(hub  ) Sub=00 Prot=01 MxPS=64 #Cfgs=  1
P:  Vendor=8087 ProdID=8001 Rev=00.03
C:  #Ifs= 1 Cfg#= 1 Atr=e0 MxPwr=0mA
I:  If#= 0 Alt= 0 #EPs= 1 Cls=09(hub  ) Sub=00 Prot=00 Driver=hub

Он не работает безупречно, как я думаю, это должно быть. Сопряжение работает на основе проб и ошибок, но как только устройства сопрягаются, они работают так, как ожидалось. По крайней мере, теперь у меня есть адаптер Bluetooth, который работает на Linux.

В любом случае, я благодарен за потраченное время, пытаясь помочь мне и дать мне указания. Спасибо!

1
задан 13 August 2018 в 14:55

1 ответ

Cypress содержит файл внешней библиотеки, расположенный по умолчанию в (path to project)/support/index.js.

Этот файл включен во все тестовые файлы, поэтому вы можете разместить здесь общий код.

[ ! d2]

Вы также можете включить другие файлы в папку support со следующим кодом в index.js:

import './MySupportFile.js'

При включении внешнего тестового файла , простые определения функций, похоже, не переносятся. Я не совсем уверен, почему. Вставка функций в объект cy сработала для меня:

cy.myFunction = greeting => {
    console.log(greeting);
};

cy.myNamespace = {};

cy.myNamespace.myNamespacedFunction = () => {
    console.log("hi");
};

Эти функции в объекте cy будут перенесены в любые файлы /integration, которые у вас есть.

1
ответ дан 15 August 2018 в 17:02
  • 1
    Если вы хотите использовать эту функцию только в одном spec, вы можете import использовать ее в этой спецификации напрямую, а не в файле support/index.js, который будет импортировать ее во все спецификации – Brendan 13 August 2018 в 18:02
  • 2
    @Joshua Я добавил функцию в файл index.js и импортировал, как показано ниже в верхней части тестового файла (в обоих направлениях). 'Import subValues ​​from' ../support/index '; import {subValues} из '../index'; ' ... spec не удалось запустить и выдает ошибку – soccerway 14 August 2018 в 01:41
  • 3
    Это помогает нам понять, в чем проблема, если вы предоставляете ошибку, которую видите. Также вам не нужно import из файла support/index.js, кипарисовые ручки, которые автоматически. См. [D0] docs.cypress.io/api/cypress-api/custom-commands.html – Brendan 14 August 2018 в 05:05
  • 4
    Правильный способ сделать это - следовать синтаксису пользовательской команды. Поместите это в свой файл support/commands.js: Cypress.Commands.add('subValues', (a, b) => { return a - b.});. Вызовите его из своего теста следующим образом: cy.subValues(a, b);. Не используйте оператор импорта. – Brendan 14 August 2018 в 17:03
  • 5
    @soccerway Я перевел свой комментарий на полный ответ. Я положил это в свой экземпляр кипариса и передал его. – Brendan 14 August 2018 в 17:55

Другие вопросы по тегам:

Похожие вопросы: