На ОС Fedora и CentOS установить node.js и npm можно следующей командой. Для старта нас устроит любая версия.
yum install nodejs nodejs-npm
Все команды необходимо выполнять в любой удобной папке с правами на запись для вашего пользователя. Например /home/username/lesson1.
Для запуска простого теста нам понадобятся два модуля: mocha и chai. Они являются довольно популярными и доступными для понимания. Первый из них - это фреймворк для запуска тестов и генерации отчетов, а второй - набор инструментов для тестирования. Установить их можно командой:
npm i mocha chai
npm - подпрограмма, которая устанавливает/удаляет дополнительные модули для node.js
После этого в директории проекта появится папка node_modules. Ее содержимое можно посмотреть командой:
ls node_modules
ls - стандартная подпрограмма linux. Ее задача показывать список директорий и файлов.
Также можно воспользоваться npm для отображения списка установленных пакетов:
npm list
Результат будет построен в виде дерева зависимостей, и мы увидим, что установив лишь два модуля, по их зависимостям установилось еще довольно много различных модулей.
Если нас интересует какой-то конкретный модуль и его версия мы можем глянуть это следующим образом:
npm list mocha
Теперь для полноценного завершения работы по инициализации проекта, необходимо выполнить команду:
npm init
И ответить на парочку вопросов. Можно просто жать Enter
, тогда все значения будут установлены по умолчанию.
В итоге, содержимое package.json
должно иметь примерно следующий вид:
{
"name": "learning-nodejs-tests-lesson-1",
"version": "1.0.0",
"description": "## Установка node.js ##",
"main": "index.js",
"dependencies": {
"chai": "^4.2.0"
},
"devDependencies": {
"mocha": "^7.1.2"
},
"scripts": {
"test": "mocha"
},
"repository": {
"type": "git",
"url": "https://gitlab.decluster.ria.com/bu-auto-qa/learning/nodejs-tests/lesson-1"
},
"author": "",
"license": "ISC"
}
Для того, чтоб всё выглядело прилично, нам понадобится папка test, где мы будем складировать наши тесты:
mkdir test
В этой папке создадим файл index.js
:
touch test/index.js
Почему index.js
? - Менеджер пакетов в node.js работает таким образом, что когда мы затребуем папку с файлами в которых
содержатся тесты, первым будет считываться файл с названием index.js
. Подробнее можно почитать в п.1 списка литературы.
Теперь можно начинать. Мы напишем простейший тест, который проверит как работают базовые арифметические операторы в javascript.
Добавим в файл index.js
следующие строки:
const chai = require("chai"),
expect = chai.expect;
Мы объявили две переменные chai и expect, из которых в последнюю будет записана ссылка на свойство expect объекта chai.
Дальше нам необходимо написать сам тест:
describe('Проверка арифметических операторов javascript', function(){
it('Оператор сложения', function(){
return expect(2+2).to.be.equal(4);
});
it('Оператор вычитания', function(){
return expect(4-2).to.be.equal(2);
});
it('Оператор умножения', function(){
return expect(2*2).to.be.equal(4);
});
it('Оператор деления', function(){
return expect(4/2).to.be.equal(2);
})
});
Итоговое содержимое файла test/index.js
:
const chai = require("chai"),
expect = chai.expect;
describe('Проверка арифметических операторов javascript', function(){
it('Оператор сложения', function(){
return expect(2+2).to.be.equal(4);
});
it('Оператор вычетания', function(){
return expect(4-2).to.be.equal(2);
});
it('Оператор умножения', function(){
return expect(2*2).to.be.equal(4);
});
it('Оператор деления', function(){
return expect(4/2).to.be.equal(2);
})
});
После этого запустим:
npm test
Если все хорошо, то мы увидим отчет о тестировании, где зелеными галочками отмечены успешно пройденные тесты:
Как npm узнал что надо запустить именно наш тест? Ответ находится в файле package.json
:
"scripts": {
"test": "mocha"
}
В свойстве scripts этого файла перечислены все возможные команды. Отсюда мы узнали что для команды test
(она стандартная и поэтому не требуется добавления слова run) прописан вызов нашего фреймворка для тестирования - mocha,
который, в свою очередь, при вызове заглядывает в папку test нашего проекта, где находит файл index.js
, а
в нем мы предусмотрительно написали свои тесты.
- Как установить nodejs и npm
- Как пользоваться ls и npm для просмотра файлов в папке node_modules
- Как инициализировать наш проект для полноценной работы
- Как написать простой тест проверящий арифметические операторы
- Как запустить наш тест