Рубрики
Без рубрики

Как использовать Завет в NIM?

Введение тестирование-это утомительная работа, но достойная работа. Вы должны убедиться, что ваш P … Tagged with NIM, тестирование, Python, Завет.

Тестирование-это утомительная работа, но достойная работа. Вы должны убедиться, что ваш проект будет надежным, прежде чем он будет выпущен.

В Nim Язык, есть много способов проверить вашу программу.

Для простоты вы можете объединить Когда Ismainmodule и doassert Чтобы проверить вашу программу.

Программы ниже не производят ошибки:

proc hello*(num: int): int =
  result = num + 4

when isMainModule:
  doAssert hello(1) == 5
  doAssert hello(2) == 6
  doAssert hello(3) != 6

Или вы можете использовать Unittest модуль.

Завет который отличается от Unittest интегрированный тест. Он поставляется с дистрибуцией NIM в качестве инструментов для тестирования.

Как использовать

Если вы хотите использовать Завет, убедитесь, что у вашего проекта есть каталог тестов. Например:

- example
  - src
    - main.nim
  - tests
    - test1.nim
    - test2.nim
    - dir
      - test1.nim
      - test2.nim

Программы в SRC каталог:

# main.nim
proc hello*(num: int): int =
  result = num + 4

Отмечает, что ваш файл тестов должен начинаться с символа ‘t’.

Отдельный файл

Это просто проверить один файл NIM. Измените свой текущий рабочий каталог на Пример Анкет Вы можете опустить название тестов. Просто беги Завет R Test1.nim или Завет R Dir/test1.nim Анкет Конечно, Завет R тесты/test1.nim и Testament R -тесты/dir/test1.nim тоже правы.

В Test1.nim вы можете написать тесты подобным образом:

import ../src/main


doAssert hello(1) == 5

block:
  doAssert hello(3) == 7


doAssertRaises(ValueError):
  raise newException(ValueError, "specific errors")

Может дать такие результаты, как это:

D:\cookbook\example>testament r test1.nim
PASS: tests/test1.nim C                                            ( 2.65 sec)

Несколько файлов

Завет все будет тестировать только что -то в каталоге. А именно, Тесты/*/ta.nim будет проверен. Однако Тесты/ta.nim не будет проверен.

Если вы хотите проверить все файлы в каталоге тестов, вы можете использовать команду Завет кошка/ или Заветный кот. .

Может дать такие результаты, как это:

D:\cookbook\example>testament cat /
PASS: tests/dir/test1.nim C                                        ( 0.83 sec)
PASS: tests/test1.nim C                                            ( 0.84 sec)
PASS: tests/dir/test2.nim C                                        ( 0.85 sec)
PASS: tests/test2.nim C                                            ( 0.88 sec)
D:\cookbook\example>testament cat .
PASS: tests/dir/test1.nim C                                        ( 0.23 sec)
PASS: tests/dir/test2.nim C                                        ( 0.44 sec)
PASS: tests/test1.nim C                                            ( 0.44 sec)
PASS: tests/test2.nim C                                            ( 0.57 sec)

Все параметры

Запустить команду Завет Чтобы посмотреть все параметры.

Usage:
  testament [options] command [arguments]

Command:
  p|pat|pattern         run all the tests matching the given pattern
  all                         run all tests
  c|cat|category    run all the tests of a certain category
  r|run                 run single test file
  html                        generate testresults.html from the database
  stats                       generate statistics about test cases
Arguments:
  arguments are passed to the compiler
Options:
  --print                   also print results to the console
  --simulate                see what tests would be run but don't run them (for debugging)
  --failing                 only show failing/ignored tests
  --targets:"c c++ js objc" run tests for specified targets (default: all)
  --nim:path                use a particular nim executable (default: $PATH/nim)
  --directory:dir           Change to directory dir before reading the tests or doing anything else.
  --colors:on|off           Turn messages coloring on|off.
  --backendLogging:on|off   Disable or enable backend logging. By default turned on.
  --megatest:on|off         Enable or disable megatest. Default is on.
  --skipFrom:file           Read tests to skip from `file` - one test per line, # comments ignored

Укажите конфигурацию

Вы можете указать конфигурацию в передней части вашей программы.

Например, вы можете указать конфигурацию в main.nim:

discard """
  cmd:      "nim c -r --styleCheck:hint --panics:on $options $file"
  matrix:   "--gc:arc; --gc:arc --d:release"
  targets:  "c"
  nimout:   ""
  action:   "run"
  exitcode: 0
  timeout:  60.0
"""

import ../src/main


doAssert hello(1) == 5

block:
  doAssert hello(3) == 7

Часто мне просто нужны изменения Матрица параметры и укажите несколько конфигураций, разделенных ; Анкет

Вы также можете указать строки, напечатанные программой:

discard """
output: '''
true
false
1
'''
"""

echo true
echo false
echo 1

Укажите сообщения об ошибках:

discard """
  errormsg: "undeclared identifier: '++'"
"""

echo 12 ++ 1

Для получения более подробной информации, серфинга Nim Github Repo, чтобы получить больше интуиции.

https://github.com/nim-lang/Nim/tree/devel/tests

Использование реального мира

Я использую Завет В моем проекте:

Пролог

https://github.com/planety/prologue/tree/master/tests

https://github.com/planety/prologue/blob/master/prologue.nimble

Официальные документы

http://nim-lang.github.io/Nim/testament.html

Вывод

NIM – это элегантный и эффективный язык программирования. И Завет также является мощным тестовым инструментом. Найдите забавный проект и наслаждайтесь своей жизнью!

Оригинал: “https://dev.to/xflywind/how-to-use-testament-in-nim-1l0h”