Как получить значение из MongoDB в работающем тесте TestCafe, чтобы оно выводило это значение во время теста?У меня есть коллекция MongoDB, заполненная данными, которые я хочу использовать TestCafe во время тестов в реальном времени.Я ожидал использовать .toArray () в файле TestCafe, но, похоже, даже не могу установить соединение с MongoDB.Нигде в Интернете я не нашел решения для этого еще.
Я уже пытался выполнить следующие шаги:
- Добавлен MongoClient в мой код test.js (файл TestCafe).
- В этом коде япопытался просто отобразить «подключен к базе данных».
- Я никогда не вижу «подключен к базе данных» в терминале или где-либо еще.
import { Selector } from 'testcafe';
const MongoClient = require('mongodb').MongoClient
import fs from 'fs';
import { ClientFunction } from 'testcafe';
const assert = require('assert');
// Connection URL
const url = 'mongodb://localhost:27017';
// Database Name
const dbName = 'my_database_name';
// keyword begins as an empty string and is supposed to be populated from DB
var keyword = [];
// Use connect method to connect to the server
MongoClient.connect(url, function(err, client) {
assert.equal(null, err);
console.log("Connected successfully to server");
const db = client.db(dbName);
const findDocuments = function(db, callback) {
// Get the documents collection
const collection = db.collection('my_collection_name');
// Find some documents
collection.find({'a': 3}).toArray(function(err, docs) {
assert.equal(err, null);
console.log("Found the following records");
console.log(docs);
callback(docs);
keyword.unshift(docs);
});
};
client.close();
});
keyword = keyword[0]
fixture `example`
.page `https://www.google.com/`;
test('mongodb keyword to google search', async t => {
await t
.wait(1000)
.maximizeWindow()
.wait(1000)
.typeText(Selector('input[name="q"]'), keyword) //docs['keyword']
.wait(1000)
.presKey('enter')
.wait(5000);
});
Итак, я попытался показатьпростой поиск в Google, который пытается вставить ключевое слово из моей коллекции MongoDB в окно поиска Google и нажать кнопку поиска.Это должно быть достаточно просто:
- Запустить тест
- Предполагается, что для подключения к MongoDB, получите одно ключевое слово из "example_collection"
- Введите это ключевое слово в Google инажмите search.
Вместо этого я получаю эту ошибку:
(node:1900) DeprecationWarning: current URL string parser is deprecated, and will be removed in a future version. To use|
Running tests in:
- Chrome 74.0.3729 / Windows 10.0.0
example
× MongoDB keyword to google search
1) The "text" argument is expected to be a non-empty string, but it was undefined.
Browser: Chrome 74.0.3729 / Windows 10.0.0
64 |test('mongodb keyword to google search', async t => {
65 | await t
66 | .wait(1000)
67 | .maximizeWindow()
68 | .wait(1000)
> 69 | .typeText(Selector('input[name="q"]'), keyword) //docs['keyword']
70 | .wait(1000)
71 | .presKey('enter')
72 | .wait(5000);
73 |
74 |});
at typeText (C:\Users\Eric\Google Drive\!GIF
PROJECT\JavaScript\NodeJS\TestCafe\stackoverflow_example.js:69:7)
at test (C:\Users\TestCafe\PROJECT\JavaScript\NodeJS\TestCafe\stackoverflow_example.js:64:1)
at markeredfn (C:\Users\User\AppData\Roaming\npm\node_modules\testcafe\src\api\wrap-test-function.js:17:28)
at <anonymous> (C:\Users\User\AppData\Roaming\npm\node_modules\testcafe\src\api\wrap-test-function.js:7:5)
at fn (C:\Users\User\AppData\Roaming\npm\node_modules\testcafe\src\test-run\index.js:240:19)
at TestRun._executeTestFn
(C:\Users\User\AppData\Roaming\npm\node_modules\testcafe\src\test-run\index.js:236:38)
at _executeTestFn (C:\Users\User\AppData\Roaming\npm\node_modules\testcafe\src\test-run\index.js:289:24)
Пожалуйста, дайте мне знать, если есть решение для этого.Я просто хочу передать данные базы данных (из MongoDB) в TestCafe, чтобы они использовались во время теста (также, если я хочу загрузить URL-адреса из базы данных, мне также нужно это знать).
1/1 ошибка (2 с)