Перевел документацию на использование Docusaurus
							
								
								
									
										20
									
								
								documentation/.gitignore
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						| @@ -0,0 +1,20 @@ | ||||
| # Dependencies | ||||
| /node_modules | ||||
|  | ||||
| # Production | ||||
| /build | ||||
|  | ||||
| # Generated files | ||||
| .docusaurus | ||||
| .cache-loader | ||||
|  | ||||
| # Misc | ||||
| .DS_Store | ||||
| .env.local | ||||
| .env.development.local | ||||
| .env.test.local | ||||
| .env.production.local | ||||
|  | ||||
| npm-debug.log* | ||||
| yarn-debug.log* | ||||
| yarn-error.log* | ||||
							
								
								
									
										41
									
								
								documentation/README.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						| @@ -0,0 +1,41 @@ | ||||
| # Website | ||||
|  | ||||
| This website is built using [Docusaurus 2](https://docusaurus.io/), a modern static website generator. | ||||
|  | ||||
| ### Installation | ||||
|  | ||||
| ``` | ||||
| $ yarn | ||||
| ``` | ||||
|  | ||||
| ### Local Development | ||||
|  | ||||
| ``` | ||||
| $ yarn start | ||||
| ``` | ||||
|  | ||||
| This command starts a local development server and opens up a browser window. Most changes are reflected live without having to restart the server. | ||||
|  | ||||
| ### Build | ||||
|  | ||||
| ``` | ||||
| $ yarn build | ||||
| ``` | ||||
|  | ||||
| This command generates static content into the `build` directory and can be served using any static contents hosting service. | ||||
|  | ||||
| ### Deployment | ||||
|  | ||||
| Using SSH: | ||||
|  | ||||
| ``` | ||||
| $ USE_SSH=true yarn deploy | ||||
| ``` | ||||
|  | ||||
| Not using SSH: | ||||
|  | ||||
| ``` | ||||
| $ GIT_USER=<Your GitHub username> yarn deploy | ||||
| ``` | ||||
|  | ||||
| If you are using GitHub pages for hosting, this command is a convenient way to build the website and push to the `gh-pages` branch. | ||||
							
								
								
									
										7
									
								
								documentation/api/index.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						| @@ -0,0 +1,7 @@ | ||||
| --- | ||||
| sidebar_position: 1 | ||||
| --- | ||||
|  | ||||
| # Программный интерфейс | ||||
|  | ||||
| Здесь будет расположена информация о программном интерфейсе YAxUnit | ||||
							
								
								
									
										3
									
								
								documentation/babel.config.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						| @@ -0,0 +1,3 @@ | ||||
| module.exports = { | ||||
|   presets: [require.resolve('@docusaurus/core/lib/babel/preset')], | ||||
| }; | ||||
| Before Width: | Height: | Size: 66 KiB After Width: | Height: | Size: 66 KiB | 
| Before Width: | Height: | Size: 78 KiB After Width: | Height: | Size: 78 KiB | 
| Before Width: | Height: | Size: 73 KiB After Width: | Height: | Size: 73 KiB | 
| Before Width: | Height: | Size: 40 KiB After Width: | Height: | Size: 40 KiB | 
| Before Width: | Height: | Size: 46 KiB After Width: | Height: | Size: 46 KiB | 
| Before Width: | Height: | Size: 168 KiB After Width: | Height: | Size: 168 KiB | 
| @@ -1,3 +1,7 @@ | ||||
| --- | ||||
| tags: [Getting started] | ||||
| --- | ||||
| 
 | ||||
| # Установка | ||||
| 
 | ||||
| ## Установка в EDT | ||||
| @@ -1,3 +1,7 @@ | ||||
| --- | ||||
| tags: [Getting started, Asserts] | ||||
| --- | ||||
| 
 | ||||
| # Утверждения | ||||
| 
 | ||||
| Каждый тестовый сценарий должен проверить результат работы тестируемого метода, будь то функция или процедура. | ||||
| @@ -1,3 +1,7 @@ | ||||
| --- | ||||
| tags: [Getting started] | ||||
| --- | ||||
| 
 | ||||
| # Контекст | ||||
| 
 | ||||
| Одним из важнейших блоков работы тестового движка является механизм контекстов. | ||||
| @@ -1,8 +1,13 @@ | ||||
| --- | ||||
| description: Create a doc page with rich content. | ||||
| tags: [Getting started] | ||||
| --- | ||||
| 
 | ||||
| # Пользовательский API | ||||
| 
 | ||||
| Для разработчиков тестов расширение предоставляет API для: | ||||
| 
 | ||||
| * [Регистрации тестовых сценариев](test-registration.md) | ||||
| * [Регистрации тестовых сценариев](test-registration) | ||||
| * Формирования [утверждений](assertions.md) для проверки результата работы различных механизмов системы. | ||||
| * Создания [тестовых данных](test-data.md) | ||||
| * Передачи данных между тестами используя [контекст](context.md) | ||||
| @@ -1,3 +1,6 @@ | ||||
| --- | ||||
| tags: [Getting started, Mock] | ||||
| --- | ||||
| # Мокито | ||||
| 
 | ||||
| Мокито - модуль созданный по образу популярного java-фреймворка для тестирования [Mockito](https://site.mockito.org/). Расширяет возможности тестирования, позволяет легко менять логику работы системы подменяя результаты работы методов, отключая какие-либо алгоритмы и проверки. | ||||
| @@ -1,3 +1,6 @@ | ||||
| --- | ||||
| tags: [Getting started, Test data] | ||||
| --- | ||||
| # Тестовые данные | ||||
| 
 | ||||
| Почти в каждом тесте разработчику необходимы данные, которые он будет использовать при тестировании: элементы справочников, документы, остатки и тд. | ||||
| @@ -1,3 +1,6 @@ | ||||
| --- | ||||
| tags: [Getting started] | ||||
| --- | ||||
| # Регистрация тестовых методов (ЮТТесты) | ||||
| 
 | ||||
| Кроме того, чтобы написать тестовые сценарии, разработчик должен зарегистрировать их в движке. | ||||
| @@ -2,7 +2,7 @@ | ||||
| 
 | ||||
| ## Интерфейс отчета | ||||
| 
 | ||||
| Для просмотра результатов тестирования в режиме 1С:Предприятие, вам необходимо в параметрах запуска указать [настройку](../README.md#конфигурация-запуска) `showReport` | ||||
| Для просмотра результатов тестирования в режиме 1С:Предприятие, вам необходимо в параметрах запуска указать [настройку](run) `showReport` | ||||
| Например, создав файла настроек | ||||
| 
 | ||||
| ```json | ||||
							
								
								
									
										157
									
								
								documentation/docusaurus.config.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						| @@ -0,0 +1,157 @@ | ||||
| // @ts-check | ||||
| // Note: type annotations allow type checking and IDEs autocompletion | ||||
|  | ||||
| const lightCodeTheme = require('prism-react-renderer/themes/github'); | ||||
| const darkCodeTheme = require('prism-react-renderer/themes/dracula'); | ||||
|  | ||||
| /** @type {import('@docusaurus/types').Config} */ | ||||
| const config = { | ||||
|   title: 'YAx Unit', | ||||
|   tagline: 'Модульные тесты для 1С - это не сложно', | ||||
|   favicon: 'img/logo.png', | ||||
|  | ||||
|   // Set the production url of your site here | ||||
|   url: 'https://bia-technologies.github.io/', | ||||
|   // Set the /<baseUrl>/ pathname under which your site is served | ||||
|   // For GitHub pages deployment, it is often '/<projectName>/' | ||||
|   baseUrl: '/yaxunit', | ||||
|  | ||||
|   // GitHub pages deployment config. | ||||
|   // If you aren't using GitHub pages, you don't need these. | ||||
|   organizationName: 'alkoleft', // Usually your GitHub org/user name. | ||||
|   projectName: 'yaxunit', // Usually your repo name. | ||||
|   deploymentBranch: 'gh-pages', | ||||
|  | ||||
|   onBrokenLinks: 'throw', | ||||
|   onBrokenMarkdownLinks: 'warn', | ||||
|  | ||||
|   // Even if you don't use internalization, you can use this field to set useful | ||||
|   // metadata like html lang. For example, if your site is Chinese, you may want | ||||
|   // to replace "en" with "zh-Hans". | ||||
|   i18n: { | ||||
|     defaultLocale: 'en', | ||||
|     locales: ['en'], | ||||
|   }, | ||||
|  | ||||
|   presets: [ | ||||
|     [ | ||||
|       'classic', | ||||
|       /** @type {import('@docusaurus/preset-classic').Options} */ | ||||
|       ({ | ||||
|         docs: { | ||||
|           routeBasePath: 'docs', | ||||
|           sidebarPath: require.resolve('./sidebars.js'), | ||||
|           // Please change this to your repo. | ||||
|           // Remove this to remove the "edit this page" links. | ||||
|           editUrl: | ||||
|             'https://github.com/bia-technologies/yaxunit/', | ||||
|         }, | ||||
|         blog: false, | ||||
|         theme: { | ||||
|           customCss: require.resolve('./src/css/custom.css'), | ||||
|         }, | ||||
|       }), | ||||
|     ] | ||||
|   ], | ||||
|   plugins: [ | ||||
|     [ | ||||
|       '@docusaurus/plugin-content-docs', | ||||
|       { | ||||
|         id: 'api', | ||||
|         path: 'api', | ||||
|         routeBasePath: 'api', | ||||
|         sidebarPath: require.resolve('./sidebarsAPI.js'), | ||||
|         // ... other options | ||||
|       }, | ||||
|     ], | ||||
|     [ | ||||
|       '@docusaurus/plugin-content-docs', | ||||
|       { | ||||
|         id: 'lessons', | ||||
|         path: 'lessons', | ||||
|         routeBasePath: 'lessons', | ||||
|         sidebarPath: require.resolve('./sidebarsLessons.js'), | ||||
|         // ... other options | ||||
|       }, | ||||
|     ] | ||||
|   ], | ||||
|  | ||||
|   themeConfig: | ||||
|     /** @type {import('@docusaurus/preset-classic').ThemeConfig} */ | ||||
|     ({ | ||||
|       // Replace with your project's social card | ||||
|       navbar: { | ||||
|         title: 'YAx Unit', | ||||
|         logo: { | ||||
|           alt: 'YaxUnit Logo', | ||||
|           src: 'img/logo.png', | ||||
|         }, | ||||
|         items: [ | ||||
|           { | ||||
|             type: 'doc', | ||||
|             docId: 'user-api/index', | ||||
|             position: 'left', | ||||
|             label: 'Описание', | ||||
|           }, | ||||
|           { | ||||
|             type: 'doc', | ||||
|             docId: 'index', | ||||
|             docsPluginId: 'lessons', | ||||
|             position: 'left', | ||||
|             label: 'Уроки', | ||||
|           }, | ||||
|           { | ||||
|             type: 'doc', | ||||
|             docId: 'index', | ||||
|             docsPluginId: 'api', | ||||
|             position: 'left', | ||||
|             label: 'API', | ||||
|           }, | ||||
|           { | ||||
|             href: 'https://github.com/bia-technologies/yaxunit', | ||||
|             label: 'bia-technologies/yaxunit', | ||||
|             position: 'right', | ||||
|           }, | ||||
|         ], | ||||
|       }, | ||||
|       footer: { | ||||
|         style: 'dark', | ||||
|         links: [ | ||||
|           { | ||||
|             title: 'Docs', | ||||
|             items: [ | ||||
|               { | ||||
|                 label: 'Tutorial', | ||||
|                 to: '/docs/user-api', | ||||
|               }, | ||||
|             ], | ||||
|           }, | ||||
|           { | ||||
|             title: 'Community', | ||||
|             items: [ | ||||
|               { | ||||
|                 label: 'Telegram', | ||||
|                 href: 'https://t.me/BIAOpenTools/12', | ||||
|               } | ||||
|             ], | ||||
|           }, | ||||
|           { | ||||
|             title: 'More', | ||||
|             items: [ | ||||
|               { | ||||
|                 label: 'GitHub', | ||||
|                 href: 'https://github.com/bia-technologies/yaxunit', | ||||
|               }, | ||||
|             ], | ||||
|           }, | ||||
|         ], | ||||
|         copyright: `Copyright © ${new Date().getFullYear()} BIA Technologies, Inc. Built with Docusaurus.`, | ||||
|       }, | ||||
|       prism: { | ||||
|         theme: lightCodeTheme, | ||||
|         darkTheme: darkCodeTheme, | ||||
|       }, | ||||
|     }), | ||||
| }; | ||||
|  | ||||
| module.exports = config; | ||||
							
								
								
									
										3
									
								
								documentation/lessons/index.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						| @@ -0,0 +1,3 @@ | ||||
| # Уроки и примеры использования YAxUnit | ||||
|  | ||||
| Здесь будут собраны различные материалы для лучшего понимая принципов написания тестов в работы с YAxUnit | ||||
							
								
								
									
										12459
									
								
								documentation/package-lock.json
									
									
									
										generated
									
									
									
										Normal file
									
								
							
							
						
						
							
								
								
									
										43
									
								
								documentation/package.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						| @@ -0,0 +1,43 @@ | ||||
| { | ||||
|   "name": "documentation", | ||||
|   "version": "0.0.0", | ||||
|   "private": true, | ||||
|   "scripts": { | ||||
|     "docusaurus": "docusaurus", | ||||
|     "start": "docusaurus start", | ||||
|     "build": "docusaurus build", | ||||
|     "swizzle": "docusaurus swizzle", | ||||
|     "deploy": "docusaurus deploy", | ||||
|     "clear": "docusaurus clear", | ||||
|     "serve": "docusaurus serve", | ||||
|     "write-translations": "docusaurus write-translations", | ||||
|     "write-heading-ids": "docusaurus write-heading-ids" | ||||
|   }, | ||||
|   "dependencies": { | ||||
|     "@docusaurus/core": "2.3.1", | ||||
|     "@docusaurus/preset-classic": "2.3.1", | ||||
|     "@mdx-js/react": "^1.6.22", | ||||
|     "clsx": "^1.2.1", | ||||
|     "prism-react-renderer": "^1.3.5", | ||||
|     "react": "^17.0.2", | ||||
|     "react-dom": "^17.0.2" | ||||
|   }, | ||||
|   "devDependencies": { | ||||
|     "@docusaurus/module-type-aliases": "2.3.1" | ||||
|   }, | ||||
|   "browserslist": { | ||||
|     "production": [ | ||||
|       ">0.5%", | ||||
|       "not dead", | ||||
|       "not op_mini all" | ||||
|     ], | ||||
|     "development": [ | ||||
|       "last 1 chrome version", | ||||
|       "last 1 firefox version", | ||||
|       "last 1 safari version" | ||||
|     ] | ||||
|   }, | ||||
|   "engines": { | ||||
|     "node": ">=16.14" | ||||
|   } | ||||
| } | ||||
							
								
								
									
										33
									
								
								documentation/sidebars.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						| @@ -0,0 +1,33 @@ | ||||
| /** | ||||
|  * Creating a sidebar enables you to: | ||||
|  - create an ordered group of docs | ||||
|  - render a sidebar for each doc of that group | ||||
|  - provide next/previous navigation | ||||
|  | ||||
|  The sidebars can be generated from the filesystem, or explicitly defined here. | ||||
|  | ||||
|  Create as many sidebars as you want. | ||||
|  */ | ||||
|  | ||||
| // @ts-check | ||||
|  | ||||
| /** @type {import('@docusaurus/plugin-content-docs').SidebarsConfig} */ | ||||
| const sidebars = { | ||||
|   // By default, Docusaurus generates a sidebar from the docs folder structure | ||||
|   tutorialSidebar: [{type: 'autogenerated', dirName: '.'}], | ||||
|  | ||||
|   // But you can create a sidebar manually | ||||
|   /* | ||||
|   tutorialSidebar: [ | ||||
|     'intro', | ||||
|     'hello', | ||||
|     { | ||||
|       type: 'category', | ||||
|       label: 'Tutorial', | ||||
|       items: ['tutorial-basics/create-a-document'], | ||||
|     }, | ||||
|   ], | ||||
|    */ | ||||
| }; | ||||
|  | ||||
| module.exports = sidebars; | ||||
							
								
								
									
										33
									
								
								documentation/sidebarsAPI.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						| @@ -0,0 +1,33 @@ | ||||
| /** | ||||
|  * Creating a sidebar enables you to: | ||||
|  - create an ordered group of docs | ||||
|  - render a sidebar for each doc of that group | ||||
|  - provide next/previous navigation | ||||
|  | ||||
|  The sidebars can be generated from the filesystem, or explicitly defined here. | ||||
|  | ||||
|  Create as many sidebars as you want. | ||||
|  */ | ||||
|  | ||||
| // @ts-check | ||||
|  | ||||
| /** @type {import('@docusaurus/plugin-content-docs').SidebarsConfig} */ | ||||
| const sidebars = { | ||||
|   // By default, Docusaurus generates a sidebar from the docs folder structure | ||||
|   api: [{type: 'autogenerated', dirName: '.'}], | ||||
|  | ||||
|   // But you can create a sidebar manually | ||||
|   /* | ||||
|   tutorialSidebar: [ | ||||
|     'intro', | ||||
|     'hello', | ||||
|     { | ||||
|       type: 'category', | ||||
|       label: 'Tutorial', | ||||
|       items: ['tutorial-basics/create-a-document'], | ||||
|     }, | ||||
|   ], | ||||
|    */ | ||||
| }; | ||||
|  | ||||
| module.exports = sidebars; | ||||
							
								
								
									
										33
									
								
								documentation/sidebarsLessons.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						| @@ -0,0 +1,33 @@ | ||||
| /** | ||||
|  * Creating a sidebar enables you to: | ||||
|  - create an ordered group of docs | ||||
|  - render a sidebar for each doc of that group | ||||
|  - provide next/previous navigation | ||||
|  | ||||
|  The sidebars can be generated from the filesystem, or explicitly defined here. | ||||
|  | ||||
|  Create as many sidebars as you want. | ||||
|  */ | ||||
|  | ||||
| // @ts-check | ||||
|  | ||||
| /** @type {import('@docusaurus/plugin-content-docs').SidebarsConfig} */ | ||||
| const sidebars = { | ||||
|   // By default, Docusaurus generates a sidebar from the docs folder structure | ||||
|   api: [{type: 'autogenerated', dirName: '.'}], | ||||
|  | ||||
|   // But you can create a sidebar manually | ||||
|   /* | ||||
|   tutorialSidebar: [ | ||||
|     'intro', | ||||
|     'hello', | ||||
|     { | ||||
|       type: 'category', | ||||
|       label: 'Tutorial', | ||||
|       items: ['tutorial-basics/create-a-document'], | ||||
|     }, | ||||
|   ], | ||||
|    */ | ||||
| }; | ||||
|  | ||||
| module.exports = sidebars; | ||||
							
								
								
									
										30
									
								
								documentation/src/css/custom.css
									
									
									
									
									
										Normal file
									
								
							
							
						
						| @@ -0,0 +1,30 @@ | ||||
| /** | ||||
|  * Any CSS included here will be global. The classic template | ||||
|  * bundles Infima by default. Infima is a CSS framework designed to | ||||
|  * work well for content-centric websites. | ||||
|  */ | ||||
|  | ||||
| /* You can override the default Infima variables here. */ | ||||
| :root { | ||||
|   --ifm-color-primary: #2e8555; | ||||
|   --ifm-color-primary-dark: #29784c; | ||||
|   --ifm-color-primary-darker: #277148; | ||||
|   --ifm-color-primary-darkest: #205d3b; | ||||
|   --ifm-color-primary-light: #33925d; | ||||
|   --ifm-color-primary-lighter: #359962; | ||||
|   --ifm-color-primary-lightest: #3cad6e; | ||||
|   --ifm-code-font-size: 95%; | ||||
|   --docusaurus-highlighted-code-line-bg: rgba(0, 0, 0, 0.1); | ||||
| } | ||||
|  | ||||
| /* For readability concerns, you should choose a lighter palette in dark mode. */ | ||||
| [data-theme='dark'] { | ||||
|   --ifm-color-primary: #25c2a0; | ||||
|   --ifm-color-primary-dark: #21af90; | ||||
|   --ifm-color-primary-darker: #1fa588; | ||||
|   --ifm-color-primary-darkest: #1a8870; | ||||
|   --ifm-color-primary-light: #29d5b0; | ||||
|   --ifm-color-primary-lighter: #32d8b4; | ||||
|   --ifm-color-primary-lightest: #4fddbf; | ||||
|   --docusaurus-highlighted-code-line-bg: rgba(0, 0, 0, 0.3); | ||||
| } | ||||
| Before Width: | Height: | Size: 22 KiB After Width: | Height: | Size: 22 KiB | 
							
								
								
									
										197
									
								
								documentation/src/pages/index.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						| @@ -0,0 +1,197 @@ | ||||
| --- | ||||
| sidebar_position: 0 | ||||
| slug: / | ||||
| --- | ||||
|  | ||||
| # YAXUnit. Расширение для запуска тестов | ||||
|  | ||||
| ---- | ||||
|  | ||||
| [](https://github.com/bia-technologies/yaxunit/actions) | ||||
| [](https://github.com/bia-technologies/yaxunit/releases/latest) | ||||
| [](https://github.com/bia-technologies/yaxunit/releases) | ||||
| [](https://sonar.openbsl.ru/dashboard?id=yaxunit) | ||||
| [](https://sonar.openbsl.ru/dashboard?id=yaxunit) | ||||
|  | ||||
| Обсудить в [телеграмм чате](https://t.me/BIAOpenTools/12) | ||||
|  | ||||
| ---- | ||||
|  | ||||
| - [Назначение](#назначение) | ||||
|   - [Возможности](#возможности) | ||||
| - [Пример тестового модуля](#пример-тестового-модуля) | ||||
| - [Запуск](#запуск) | ||||
|   - [Запуск из EDT](#запуск-из-edt) | ||||
|   - [Запуск вне EDT](#запуск-вне-edt) | ||||
| - [Благодарности](#благодарности) | ||||
| - [Лицензия](#лицензия) | ||||
|  | ||||
| ## Назначение | ||||
|  | ||||
| Самостоятельное расширение для написания и выполнения модульного тестирования. | ||||
|  | ||||
| ### Возможности | ||||
|  | ||||
| - YAXUnit - это расширение с открытым исходным кодом, которое используется для написания и выполнения тестов | ||||
| - Разрабатывалось с оглядкой на JUnit5, пожалуй, лучший фреймворк тестирования | ||||
| - Предоставляет движок выполнения тестов | ||||
| - Предоставляет утверждения для проверки ожидаемых результатов | ||||
| - Тесты могут быть организованы в наборы и выполняться в разных контекстах | ||||
| - Позволяет быстрее и проще не только писать, но и читать тесты | ||||
| - Результаты тестирования могут быть сохранены в отчет, на текущий момент jUnit и json. | ||||
| - Большая часть пользовательского API реализована как [текучие выражения](https://ru.wikipedia.org/wiki/Fluent_interface) | ||||
| - Предусмотрена возможность расширения функциональности, можно регистрировать свои форматы отчетов, добавлять модули с утверждениями | ||||
| - Реализован [плагин для EDT](https://github.com/bia-technologies/edt-test-runner), который упрощает процесс запуска тестов | ||||
|  | ||||
| Подробнее ознакомиться с функциональностью вы можете изучив [документацию](/docs/user-api). | ||||
|  | ||||
| А для того, что бы начать писать тесты необходимо [установить расширение](/docs/install) в свою IDE (конфигуратор или EDT). | ||||
|  | ||||
| ## Пример тестового модуля | ||||
|  | ||||
| Для создания теста нужно в расширении (в отдельном или в том же) добавить модуль, содержащий экспортный метод регистрации - `ИсполняемыеСценарии` и реализовать тесты. | ||||
|  | ||||
| Пример модуля тестов: | ||||
|  | ||||
| ```bsl | ||||
| #Область СлужебныйПрограммныйИнтерфейс | ||||
|  | ||||
| Процедура ИсполняемыеСценарии() Экспорт | ||||
|      | ||||
|     // Регистрация тестов | ||||
|     ЮТТесты // Регистрация тестов выполняет через модуль регистратор | ||||
|         .ДобавитьТестовыйНабор("Математические методы")               // Набор - объединение тестов | ||||
|             .ДобавитьТест("Сложение")                                 // Обязательно при регистрации указываем имя экспортного метода | ||||
|             .ДобавитьТест("Вычитание", "Вычитание")                   // Также можно указать представление теста | ||||
|             .ДобавитьТест("Вычитание", "ВычитаниеСервер", , "Сервер") // Контекст исполнения, по умолчанию тест выполняется во всех контекстах модуля | ||||
|             .ДобавитьКлиентскийТест("УмножениеНаКлиенте")                   // Есть отдельный метод для регистрации клиентских тестов | ||||
|             .ДобавитьСерверныйТест("ДелениеНаСервере", "Деление на сервер") // Есть отдельный метод для регистрации серверных тестов | ||||
|         .ДобавитьТестовыйНабор("Строковые методы") | ||||
|             .ДобавитьТест("СтрНайти") | ||||
|             .ДобавитьТест("СтрРазделить"); | ||||
|  | ||||
| КонецПроцедуры | ||||
|  | ||||
| #КонецОбласти | ||||
|  | ||||
| #Область Тесты | ||||
|  | ||||
| Процедура Сложение() Экспорт | ||||
|  | ||||
|     // Реализация теста на сложение | ||||
|     ЮТест.ОжидаетЧто(2 + 3, "2 + 3") // Используя модуль утверждений установим проверяемое значение и пояснение | ||||
|         .ИмеетТип("Число") // Проверим тип | ||||
|         .Заполнено() // Заполненность проверяемого значения | ||||
|         .Больше(0) // Сравним с нулем | ||||
|         .Равно(5); // Проверим ожидаемый результат | ||||
|  | ||||
|     ЮТест.ОжидаетЧто(-8 + 8, "-8 + 8") // Проверим второй вариант | ||||
|         .Равно(0); | ||||
|  | ||||
| КонецПроцедуры | ||||
|  | ||||
| Процедура Вычитание() Экспорт | ||||
|  | ||||
|     // Реализация теста на вычитание | ||||
|     ЮТест.ОжидаетЧто(2 - 3, "2 - 3").ИмеетТип("Число").Заполнено().Меньше(0); | ||||
|  | ||||
| КонецПроцедуры | ||||
|  | ||||
| #КонецОбласти | ||||
|  | ||||
| #Область События | ||||
|  | ||||
| // Также в тесте можно обрабатывать события выполнения | ||||
| // Например можно реализовать подготовку и удаление тестовых данных | ||||
| // Зачистку временных файлов, настройку системы | ||||
|  | ||||
| Процедура ПередВсемиТестами() Экспорт | ||||
|     // Выполняется перед запуском всех тестов контекста, те если есть тесты и на клиенте и на сервер, то метод будет выполнен 2 раза | ||||
|     Сообщить("Запуск тестирования"); | ||||
|  | ||||
| КонецПроцедуры | ||||
|  | ||||
| Процедура ПередТестовымНабором() Экспорт | ||||
|  | ||||
|     // Выполняется перед каждым тестовым набором для каждого контекста выполнения | ||||
|     Контекст = ЮТест.КонтекстТестовогоНабора(); // Контекст набора служит для хранения любых данных, нужных при тестировании | ||||
|                                                 // Контекст живет в рамках контекста выполнения,  | ||||
|                                                 // таки образом, через контекст нельзя передавать данные между серверными и клиентскими тестами | ||||
|     Контекст.Вставить("ВремяНачала", ТекущаяУниверсальнаяДатаВМиллисекундах()); | ||||
|  | ||||
| КонецПроцедуры | ||||
|  | ||||
| Процедура ПередКаждымТестом() Экспорт | ||||
|  | ||||
|     // Выполняется перед каждым тестом | ||||
|     Контекст = ЮТест.КонтекстТеста(); // Контекст теста служит для хранения любых данных, нужных при тестировании | ||||
|                                       // Контекст создает перед тестом и уничтожается после его выполнения | ||||
|                                       // В контекст например, можно помещать созданные в процессе данные, что бы потом их удалить | ||||
|     Контекст.Вставить("ВремяНачала", ТекущаяУниверсальнаяДатаВМиллисекундах()); | ||||
|  | ||||
| КонецПроцедуры | ||||
|  | ||||
| Процедура ПослеКаждогоТеста() Экспорт | ||||
|  | ||||
|     // Выполняется после каждого теста | ||||
|     Контекст = ЮТест.КонтекстТеста(); | ||||
|     Сообщить("Время выполнения теста: " + (ТекущаяУниверсальнаяДатаВМиллисекундах() - Контекст.ВремяНачала)); | ||||
|  | ||||
| КонецПроцедуры | ||||
|  | ||||
| Процедура ПослеТестовогоНабора() Экспорт | ||||
|  | ||||
|     // Выполняется после каждого тестового набора для каждого контекста выполнения | ||||
|     // Применяется для очистки данных и т.д. | ||||
|     Контекст = ЮТест.КонтекстТестовогоНабора(); | ||||
|     Сообщить("Время выполнения набора: " + (ТекущаяУниверсальнаяДатаВМиллисекундах() - Контекст.ВремяНачала)); | ||||
|  | ||||
| КонецПроцедуры | ||||
|  | ||||
| Процедура ПослеВсехТестов() Экспорт | ||||
|  | ||||
|     // Выполняется после выполнения всех тестов контекста, те если есть тесты и на клиенте и на сервер, то метод будет выполнен 2 раза | ||||
|     // В этом событии все контексты уже уничтожены | ||||
|     Сообщить("Тестирование завершено"); | ||||
|  | ||||
| КонецПроцедуры | ||||
|  | ||||
| #КонецОбласти | ||||
|  | ||||
| ``` | ||||
|  | ||||
| После запуска тестов модуля в EDT (используя [плагин](https://github.com/bia-technologies/edt-test-runner)) получаем такой отчет: | ||||
|  | ||||
|  | ||||
|  | ||||
| ## Запуск | ||||
|  | ||||
| ### Запуск из EDT | ||||
|  | ||||
| При разработке в EDT процесс запуска тестов можно упростить, установив [плагин](https://github.com/bia-technologies/edt-test-runner) | ||||
| и настроив конфигурацию запуска, как указано в описании плагина. | ||||
|  | ||||
| ### Запуск вне EDT | ||||
|  | ||||
| Для запуска тестов без использования EDT необходимо: | ||||
|  | ||||
| 1. Сформировать файл конфигурации запуска [вручную](/docs/run), либо воспользоваться [формой настройки](/docs/yaxunit-ui) | ||||
| 2. [Запустить 1С:Предприятие](/docs/run) с параметром `RunUnitTests=ПутьКФайлуКонфигурации.json`. | ||||
|  | ||||
| ## Благодарности | ||||
|  | ||||
| Приносим благодарность всему [open-source сообществу 1с](https://github.com/topics/1c-enterprise) за идеи и мотивацию. | ||||
|  | ||||
| Особая благодарность авторам и контрибьютерам проектов | ||||
|  | ||||
| - [xUnitFor1C](https://github.com/xDrivenDevelopment/xUnitFor1C/graphs/contributors) | ||||
| - [vanessa-automation](https://github.com/Pr-Mex/vanessa-automation/graphs/contributors) | ||||
| - [add](https://github.com/vanessa-opensource/add/graphs/contributors) | ||||
|  | ||||
| --- | ||||
|  | ||||
| ## Лицензия | ||||
|  | ||||
| Copyright © 2022 [BIA-Technologies Limited Liability Company](http://bia-tech.ru/) | ||||
|  | ||||
| Distributed under the [Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.html) | ||||
							
								
								
									
										0
									
								
								documentation/static/.nojekyll
									
									
									
									
									
										Normal file
									
								
							
							
						
						
							
								
								
									
										
											BIN
										
									
								
								documentation/static/img/logo.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| After Width: | Height: | Size: 2.0 KiB |