Содружество Независимых Программистов

Объявление

Информация о пользователе

Привет, Гость! Войдите или зарегистрируйтесь.


Вы здесь » Содружество Независимых Программистов » Статьи на [около]программистскую тематику » Запуск unit-тестов в песочнице и локально на Python и unittest


Запуск unit-тестов в песочнице и локально на Python и unittest

Сообщений 1 страница 6 из 6

1

Запуск unit-тестов в песочнице и локально на Python и unittest

Цель примера. Допустим вы решаете задачи на ресурсах:

www.codewars.com
www.codesignal.com

На данных ресурсах ко всем задачам даются unit-тесты. Вы хотите решать задачу локально, перенести unit-тесты с данных ресурсов в песочницы и на компьютер, редактировать и добавлять свои тесты, постить ссылки на свои примеры на форуме, отправлять ссылки друзьям. Берите исходники примера с GitHub, который тестирует сложение двух чисел. Команды запуска даны в описании: https://github.com/8Observer8/sum-of-nu … est-python

Вы хотите продемонстрировать решение со своими unit-тестами, чтобы человек мог очень быстро, в два клика: открыть и запустить unit-тесты. Он может сделать Fork, изменить тесты (или код), добавить новые тесты, которые бы показывали вашу ошибку, либо отсутствие функциональности. Вы можете воспользоваться песочницами.

Пример в песочницах:
- https://repl.it/@8Observer8/sum-numbers-unittest-python
- https://trinket.io/python3/1b7fef8be0

Класс "Kata" содержит метод Add, который складывает два числа. В файле "test_Kata.py" описан один unit-тест:

Kata.py

Код:

class Kata():

    @staticmethod
    def Add(a, b):
        return a + b

test_Kata.py

Код:
import unittest
from Kata import Kata


class KataTest(unittest.TestCase):

    def test_add(self):
        # Arrange
        inputA = 5
        inputB = 6
        expected = 11

        # Act
        actual = Kata.Add(inputA, inputB)

        # Assert
        self.assertEqual(expected, actual)

Отредактировано 8Observer8 (Вс, 1 Дек 2019 20:50)

+2

2

8Observer8 написал(а):

unittest

На кодварс же вроде своя библиотека https://github.com/Codewars/python-test-framework

+1

3

Alex P. написал(а):

На кодварс же вроде своя библиотека

Не знал. И что можно сделать с этим?

Отредактировано 8Observer8 (Вс, 1 Дек 2019 13:18)

0

4

Ну если ее взять, то наверно меньше изменений кода тестов понадобится, просто скопировть и всё.

0

5

Alex P. написал(а):

Ну если ее взять, то наверно меньше изменений кода тестов понадобится, просто скопировть и всё.

Основной смысл примера, что unit-тесты в песочницы можно перенести, а на всех песочницах есть unittest. На codesignal тоже свои тесты. Кому-то может больше нравится PyTest. Лично я пока решил остановиться на unittest. Всем не угодишь. Но unittest есть в Python по умолчанию, поэтому это более общее решение, а самое главное это есть во всех онлайн песочницах.

+1

6

Отмечу, если кому интересно, что мои личные цели применения Python очень ограничены:

- Написание плагинов для Blender для автоматизации 3D моделирования механизмов, конструкций и игровых объектов для моих будущих игр с мультиплееров (клинет: WebGL/GLSL, TypeScript; сервер: Node.js, Express, socket.io, TypeScript. Использую этот плагин для VSCode для отладки и выполнения по шагам, о котором я узнал из видео туториала: Blender 2.8 Addon Development Tutorial for Beginners

- Написание плагинов для GIMP для автоматизации создания или обработки 2D изображений. Начинал с туториала: Как написать дополнение для GIMP на языке Python

- Изучение написания unit-тестов, тренировка через решение задач с unit-тестами на ресурсах типа: codewars, codesignal. Изучения написания мок объектов для инжектирования зависимостей, таких как: временно нереализованные классы и внешние API (Blender API и GIMP API). В целом, навыки, которые можно перенести на TypeScript

Я пока что решил остановиться на двух языках: TypeScript и Python. Буду тренироваться делать, для начала, простые сетевые игры (крестики-нолики, карточные, морской бой и т.д.) с развёртыванием на бесплатном хостинге Heroku, который может развёртывать автоматически после push'а на GitHub. Сейчас на GitHub можно бесплатно создавать приватные репозитории. Ну чё, народ, погнали!

+1


Вы здесь » Содружество Независимых Программистов » Статьи на [около]программистскую тематику » Запуск unit-тестов в песочнице и локально на Python и unittest