teuton 2.4.0 → 2.4.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +9 -6
- data/docs/changelog/todo.md +10 -1
- data/docs/changelog/v2.4.md +5 -1
- data/docs/commands/README.md +8 -17
- data/docs/commands/example_check.md +4 -4
- data/docs/commands/example_run.md +10 -32
- data/docs/dsl/README.md +27 -39
- data/docs/dsl/{definition/expect.md → expect.md} +2 -18
- data/docs/dsl/{execution/export.md → export.md} +4 -8
- data/docs/dsl/{setting/get.md → get.md} +4 -10
- data/docs/dsl/{definition/group.md → group.md} +2 -7
- data/docs/dsl/{execution/play.md → play.md} +1 -6
- data/docs/dsl/{definition/result.md → result.md} +1 -6
- data/docs/dsl/{definition/run_remote.md → run.md} +57 -23
- data/docs/dsl/{execution/send.md → send.md} +1 -8
- data/docs/dsl/{setting/set.md → set.md} +1 -7
- data/docs/dsl/{execution/show.md → show.md} +7 -16
- data/docs/dsl/target.md +33 -0
- data/docs/ideas/todo.md +35 -115
- data/docs/install/README.md +26 -42
- data/docs/install/s-node.md +35 -0
- data/docs/install/t-node.md +76 -0
- data/docs/learn/01-cmd_new.md +28 -0
- data/docs/learn/{01-target.md → 02-target.md} +21 -28
- data/docs/learn/03-remote_hosts.md +59 -87
- data/docs/learn/04-config.md +147 -0
- data/docs/learn/05-use.md +25 -45
- data/docs/learn/06-cmd_check.md +50 -0
- data/docs/learn/07-target_weight.md +44 -0
- data/docs/learn/08-unique_values.md +70 -0
- data/docs/learn/09-send.md +20 -0
- data/docs/learn/10-debug.md +45 -0
- data/docs/learn/11-export.md +35 -0
- data/docs/learn/{09-preserve.md → 12-preserve.md} +1 -1
- data/docs/learn/13-feedback.md +49 -0
- data/docs/learn/14-moodle_id.md +24 -0
- data/docs/learn/{08-readme.md → 15-readme.md} +5 -9
- data/docs/learn/{13-include.md → 16-include.md} +1 -3
- data/docs/learn/{14-alias.md → 17-alias.md} +0 -0
- data/docs/learn/{07-log.md → 18-log.md} +19 -23
- data/docs/learn/{12-get_vars.md → 19-read_vars.md} +3 -3
- data/docs/learn/20-macros.md +49 -0
- data/docs/learn/{16-exit_codes.md → 21-exit_codes.md} +0 -0
- data/docs/learn/{10-result.md → 22-result.md} +3 -3
- data/docs/learn/23-test-code.md +54 -0
- data/docs/learn/24-test-sql.md +69 -0
- data/docs/learn/README.md +31 -32
- data/lib/teuton/application.rb +2 -5
- data/lib/teuton/case_manager/case/case.rb +2 -1
- data/lib/teuton/case_manager/case/dsl/expect.rb +3 -1
- data/lib/teuton/case_manager/case/dsl/goto.rb +1 -1
- data/lib/teuton/case_manager/case/dsl/log.rb +5 -3
- data/lib/teuton/case_manager/case/dsl/send.rb +2 -2
- data/lib/teuton/case_manager/case/dsl/target.rb +1 -1
- data/lib/teuton/case_manager/case/result/ext_compare.rb +20 -21
- data/lib/teuton/case_manager/case/result/ext_filter.rb +15 -8
- data/lib/teuton/case_manager/case_manager.rb +10 -8
- data/lib/teuton/check/show.rb +1 -1
- data/lib/teuton/files/config.yaml +1 -2
- data/lib/teuton/files/start.rb +4 -4
- data/lib/teuton/readme/dsl.rb +9 -1
- data/lib/teuton/readme/readme.rb +8 -1
- data/lib/teuton/report/formatter/base_formatter.rb +2 -0
- data/lib/teuton/report/formatter/formatter.rb +1 -0
- data/lib/teuton/report/show.rb +8 -0
- data/lib/teuton/version.rb +1 -1
- data/lib/teuton.rb +2 -1
- metadata +72 -54
- data/docs/dsl/definition/run_local.md +0 -33
- data/docs/dsl/definition/target.md +0 -40
- data/docs/install/scripts.md +0 -96
- data/docs/learn/02-config.md +0 -121
- data/docs/learn/04-new_test.md +0 -87
- data/docs/learn/06-debug.md +0 -110
- data/docs/learn/11-moodle_id.md +0 -19
@@ -1,36 +1,27 @@
|
|
1
1
|
[<< back](../../README.md)
|
2
2
|
|
3
|
-
|
4
|
-
2. [Usage](#usage)
|
5
|
-
3. [Parameters](#parameters)
|
6
|
-
|
7
|
-
## Description
|
3
|
+
# show
|
8
4
|
|
9
5
|
When all tests are finished, the `show` command displays information on the screen about the final results.
|
10
6
|
|
11
|
-
## Usage
|
12
|
-
|
13
7
|
```ruby
|
14
8
|
start do
|
15
9
|
show
|
16
10
|
end
|
17
11
|
```
|
18
12
|
|
19
|
-
|
20
|
-
|
21
|
-
```ruby
|
22
|
-
start do
|
23
|
-
show verbose: 1
|
24
|
-
end
|
25
|
-
```
|
26
|
-
|
27
|
-
## Parameters
|
13
|
+
## Verbosity
|
28
14
|
|
29
15
|
| Action | Description |
|
30
16
|
| -------------------- | --------------------------------- |
|
31
17
|
| `show` | Same as `show level: 0` (Default) |
|
32
18
|
| `show verbose: NUMBER` | NUMBER is the value of the verbose level |
|
33
19
|
|
20
|
+
```ruby
|
21
|
+
start do
|
22
|
+
show verbose: 1
|
23
|
+
end
|
24
|
+
```
|
34
25
|
|
35
26
|
| Verbosity level | Description |
|
36
27
|
| :-------------: | ----------- |
|
data/docs/dsl/target.md
ADDED
@@ -0,0 +1,33 @@
|
|
1
|
+
[<< back](../README.md)
|
2
|
+
|
3
|
+
# target
|
4
|
+
|
5
|
+
`target` instruction is used to begin every new target and sets its description.
|
6
|
+
|
7
|
+
```ruby
|
8
|
+
target "Write here your description"
|
9
|
+
```
|
10
|
+
|
11
|
+
Describe your targets so everybody could understand what is going to be measured. This text will be shown into reports to help us understand output information easily.
|
12
|
+
|
13
|
+
## Weight
|
14
|
+
|
15
|
+
By default weight is `1.0`, but it's posible specified other values:
|
16
|
+
|
17
|
+
```ruby
|
18
|
+
target "Write here your description", weight: 2.5
|
19
|
+
```
|
20
|
+
|
21
|
+
## [DEPRECATED] Alias
|
22
|
+
|
23
|
+
`goal` keyword is an alias of `target`. So it's the same:
|
24
|
+
|
25
|
+
```ruby
|
26
|
+
target "Write here your description"
|
27
|
+
```
|
28
|
+
|
29
|
+
or
|
30
|
+
|
31
|
+
```ruby
|
32
|
+
goal "Write here your description"
|
33
|
+
```
|
data/docs/ideas/todo.md
CHANGED
@@ -1,124 +1,44 @@
|
|
1
1
|
|
2
|
-
#
|
2
|
+
# TODO list
|
3
3
|
|
4
|
-
|
4
|
+
## Add
|
5
5
|
|
6
|
-
|
6
|
+
* Option roadmap_ok_only. When expect returns false... test stop. The rest of targets are forced to fails.
|
7
|
+
* `expect_equal "camaleon"`, same as `expect result.equal "camaleon"`.
|
8
|
+
* **FEATURE** Define a loop of executions of our activity. For example:
|
9
|
+
every 5 minutes, run the activity, and repeat this 10 times.
|
10
|
+
`start :times=>10, :every=>5 do`
|
11
|
+
* Script to set **static IP**
|
12
|
+
* Change export to show **command output** into reports.
|
13
|
+
* **TEST**: actualizar las pruebas con vagrant para la versión actual. Mejora de la calidad del código.
|
14
|
+
* **DOCS** PROMOCIONAR. Documentar y hacer videos. Tener foros de la comunidad o presencia en reddit o stackoverflow.... o algo parecido???
|
15
|
+
* Create 2 evaluation modes:
|
16
|
+
1. Evaluate targets (current mode): `start eval: :targets`
|
17
|
+
1. Evaluate task: `start eval: :groups` and perhaps add group weight?
|
18
|
+
1. config file with `tt_eval: groups`
|
19
|
+
|
20
|
+
Improve RESUME report or create stat-report, with stat information:
|
21
|
+
* the worst target/task/case,
|
22
|
+
* the best target/task/case,
|
23
|
+
* the slowest target/task/case,
|
24
|
+
* the fastest target/task/case, etc.
|
25
|
+
* Related targets: group of targets that always have the same state in every case.
|
26
|
+
|
27
|
+
## Ideas
|
7
28
|
|
8
|
-
|
9
|
-
NO. quizás mejor enfoque. Tener un servidor dedicado con una página Web para lanzar test desde el propio servidor.
|
29
|
+
Esta es una lista de ideas para que no se me olvide... lo podemos ir ajustando 😊
|
10
30
|
|
11
|
-
|
12
|
-
|
13
|
-
si hay valores con NODATA... entonces que pregunte al usuario y complete la
|
31
|
+
1. TEST-EN-CADENA (smart-shell): es un proyecto en curso que trabajará en colaboración ceon teuton. Detecta las acciones del usuario dentro de la shell y automáticamente lanza el test para validar el cumplimiento de los objetivos. Si se supera un % se pasa al siguiente test.
|
32
|
+
2. SERVIDOR TEUTON: Teuton web para recibir peticiones de los clientes... ?! Enganchar con teuton-server y teuton-client. NO. quizás mejor enfoque. Tener un servidor dedicado con una página Web para lanzar test desde el propio servidor.
|
33
|
+
3. Editor de ficheros de configuración.... una especie de asistente de ayuda.. no le veo mucho sentido tener un editor específico pero si al ejecutar un reto si hay valores con NODATA... entonces que pregunte al usuario y complete la
|
14
34
|
configuración sobre la marcha???
|
15
|
-
|
16
35
|
4. Editor de tests ?! .... lo veo complejo... a menos que se empiece por una versión simplificada.. El DSL es tan sencillo que no le veo sentido a un editor de retos. Pero si podemos aprovechar y crear una" librería " de los módulos más frecuentes?!... una ayuda para facilitar la creación de test... esto se puede emparejar con el editor de test...
|
36
|
+
5. `send :email_to => :members_emails`... esto requiere que cada caso tenga un email y que además el profesor tenga configurado el acceso a su cuenta de correo... para poder enviar copias de los informes....
|
37
|
+
6. When students demand help they could recibe some advises. More ideas: bonus, lives, etc.
|
38
|
+
7. save partial grades. Before play challenge read previous moodle.cvs. Then play challenge and when creates new moodle.csv... we could preseve old cases(grades) 100% for example.
|
17
39
|
|
18
|
-
|
19
|
-
6. `send :email_to => :members_emails`
|
20
|
-
|
21
|
-
7. Empaquetar tests para facilitar su movilidad . Esto se combina muy bien con la opción de búsqueda de retos.... pensar en firma gpg o md5 de comprobación etc..
|
22
|
-
Al ejecutar un test poder hacerlo "teuton run PATH/TO/FILE.zip"
|
23
|
-
|
24
|
-
|
25
|
-
# Gamification ideas
|
26
|
-
|
27
|
-
* When students demand help they could recibe some advises.
|
28
|
-
* Define a loop of executions of our activity. For example:
|
29
|
-
every 5 minutes, run the activity, and repeat this 10 times.
|
30
|
-
`start :times=>10, :duration=>5 do`
|
31
|
-
* More ideas: bonus, lives, etc.
|
32
|
-
|
33
|
-
# Ideas para QA
|
34
|
-
|
35
|
-
* actualizar las pruebas con vagrant para la versión actual. Mejora de la calidad del código.
|
36
|
-
|
37
|
-
# Ideas para PROMOCIONAR
|
38
|
-
|
39
|
-
* Documentar y hacer videos.
|
40
|
-
* Tener foros de la comunidad o presencia en reddit o stackoverflow.... o algo parecido???
|
41
|
-
|
42
|
-
Create 2 evaluation modes:
|
43
|
-
1. Evaluate targets (current mode): `start :score=>:targets do ...`
|
44
|
-
1. Evaluate task: `start :score=>:groups do ...`
|
45
|
-
|
46
|
-
|
47
|
-
## Pending
|
48
|
-
|
49
|
-
### moodle.csv and save partial grades.
|
50
|
-
|
51
|
-
* Before play challenge read previous moodle.cvs. Then play challenge and when creates new moodle.csv... we could preseve old cases(grades) 100% for example.
|
52
|
-
|
53
|
-
### expect keyword
|
54
|
-
|
55
|
-
* `expect_equal "camaleon"`, same as `expect result.equal "camaleon"`.
|
56
|
-
* `expect_not_equal "lagarto"`, same as not expect equal.
|
57
|
-
* `expect regexp("val1|var2")`, regexp function creates regular expresion from String.
|
58
|
-
* `expect result.ok?`, result from previous goto exec.
|
59
|
-
* `result.exit_code`, exit code from previous goto exec.
|
60
|
-
|
61
|
-
### Reports and export keyword
|
62
|
-
|
63
|
-
* Work on more output formats: CSV, HTML, XML.
|
64
|
-
* `export :format=>:html, :prefix => IAN`
|
65
|
-
* `export :format=>:xml, :prefix => IAN`
|
66
|
-
* `export :format=>:csv, :prefix => IAN`
|
67
|
-
* Improve RESUME report or create stat-report, with stat information:
|
68
|
-
* the worst target/task/case,
|
69
|
-
* the best target/task/case,
|
70
|
-
* the slowest target/task/case,
|
71
|
-
* the fastest target/task/case, etc.
|
72
|
-
* Related targets: group of targets that always have the same state in every case.
|
73
|
-
|
74
|
-
### File extension
|
75
|
-
|
76
|
-
* Change ".rb" file extension by ".tt" for example. To avoid users think on ruby when using teuton files.
|
77
|
-
* So move "ruby language" documentation to other section like "expert mode"...
|
78
|
-
* Change "start.rb" or "play.rb" name to "run.tt".
|
79
|
-
|
80
|
-
### loop keyword
|
81
|
-
|
82
|
-
* Create keyword to do loops without using ruby style:
|
83
|
-
```
|
84
|
-
loop i: 1..5 do
|
85
|
-
puts i
|
86
|
-
end
|
87
|
-
|
88
|
-
loop :a => [3,5,7] do
|
89
|
-
puts a
|
90
|
-
end
|
91
|
-
```
|
92
|
-
|
93
|
-
### Feedback
|
94
|
-
|
95
|
-
Add new features to DSL
|
96
|
-
* `feedback or advise "Some usefull information"` provide this information when studends demand help.
|
97
|
-
## Working
|
98
|
-
|
99
|
-
### Remote temp folder
|
100
|
-
|
101
|
-
Modify send keyword so it could works with all OS. Now only work with GNU/Linux. So we need to detect remote OS, then choose remote teuton folder where uploading files.
|
102
|
-
|
103
|
-
* First goto open new session to remote host. And then:
|
104
|
-
1. Detect remote OSTYPE: (a) GNU/Linux and MAC using "uname -a", (b) Windows using "ver" command.
|
105
|
-
2. Create teuton remote uploading folder: (a) /tmp/teuton for GNU/Linux and MAC, (b) %windir%/temp/teuton for Windows.
|
106
|
-
* Every time we send files to remote host we will use this remote folder.
|
107
|
-
|
108
|
-
### Readme
|
109
|
-
|
110
|
-
* Pass usefull information into README.md:
|
111
|
-
```
|
112
|
-
readme do
|
113
|
-
title ...
|
114
|
-
intro ...
|
115
|
-
author ...
|
116
|
-
requirements ...
|
117
|
-
tags ...
|
118
|
-
end
|
119
|
-
```
|
120
|
-
|
121
|
-
---
|
40
|
+
# Propuestas de sdelquin
|
122
41
|
|
123
|
-
|
124
|
-
|
42
|
+
- Docker en vez de vagrant?? → https://www.cloudbees.com/blog/ssh-into-a-docker-container-how-to-execute-your-commands
|
43
|
+
- Tablas "bonitas" en terminal → https://github.com/piotrmurach/tty-markdown#17-table
|
44
|
+
- Documentación en https://readthedocs.org/ ??
|
data/docs/install/README.md
CHANGED
@@ -1,44 +1,28 @@
|
|
1
1
|
[<< back](../../README.md)
|
2
2
|
|
3
|
-
# Installation
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
## S-NODE installation
|
30
|
-
|
31
|
-
* **Install** SSH server on every machine with S-NODE role.
|
32
|
-
|
33
|
-
---
|
34
|
-
# Other installation ways
|
35
|
-
|
36
|
-
**Scripts**: [Installation using scripts](scripts.md)
|
37
|
-
* These scripts run automatical installation for your OS.
|
38
|
-
* Choose this way if you don't know how to install Ruby on your system.
|
39
|
-
|
40
|
-
**Vagrant or Docker**: [Installation using Vagrant or Docker](vagrant_docker.md)
|
41
|
-
* Choose this way if you plan to install Teuton into virtual machines or containers, and you are familiar with Vagrant and Docker technologies.
|
42
|
-
|
43
|
-
**Manual**: [Manual installation](manual.md)
|
44
|
-
* If you want to install Teuton by your own, or there are not installation scripts for your OS, and you don't want to use Vagrant then... here you have information how to install all the required packages for Teuton.
|
3
|
+
# Installation process
|
4
|
+
|
5
|
+
There are 2 types of nodes/hosts:
|
6
|
+
|
7
|
+
| ID | Software | Description |
|
8
|
+
| -- | -------- | ----------- |
|
9
|
+
| **T-node** | [Teuton installation](t-node.md) | T-NODE host monitors one or severals S-NODE hosts |
|
10
|
+
| **S-node** | [SSH server installation](s-node.md) | S-NODE hosts are monitorized by T-NODE host |
|
11
|
+
|
12
|
+
Read [modes of use](modes_of_use.md) to know more about differents T-NODE/S-NODE schemes.
|
13
|
+
|
14
|
+
## Tested OS list
|
15
|
+
|
16
|
+
| Type | O.S. | Version | Arch | T-node | S-node |
|
17
|
+
| --------- | --------- | -------------- | ------ | ------ | ------ |
|
18
|
+
| GNU/Linux | CentOS | 7 | x86-64 | | |
|
19
|
+
| | Debian | 9.7.0 | x86-64 | Ok | |
|
20
|
+
| | Fedora | Workstation 29 | x84-64 | Ok | |
|
21
|
+
| | LinuxMint | 18.3 | x86-64 | Ok | |
|
22
|
+
| | openSUSE | Leap 15 | x86-64 | Ok | Ok |
|
23
|
+
| | Ubuntu | 18.04 | x86-64 | Ok | Ok |
|
24
|
+
| Microsoft | Windows | 7 Enterprise | x86 | Ok | |
|
25
|
+
| | Windows | 10 Pro | x86-64 | Ok | Ok |
|
26
|
+
| | Windows | Server 2012 R2 | x86-64 | | |
|
27
|
+
| Apple | Mac OS X | Capitán (10.11.6) | x86-64 | Ok | Ok |
|
28
|
+
| | Mac OS X | Sierra (10.12) | x86-64 | Ok | |
|
@@ -0,0 +1,35 @@
|
|
1
|
+
[<< back](README.md)
|
2
|
+
|
3
|
+
# S-NODE installation
|
4
|
+
|
5
|
+
Install SSH server on every machine with S-NODE role.
|
6
|
+
|
7
|
+
**S-node**: Host where SSH server is installed. This hosts are monitorized by T-NODE host.
|
8
|
+
|
9
|
+
**S-node GNU/Linux installation**
|
10
|
+
|
11
|
+
Run this command as `root` user:
|
12
|
+
|
13
|
+
```bash
|
14
|
+
wget -qO- https://raw.githubusercontent.com/teuton-software/teuton/master/install/linux/linux_s-node_install.sh | bash
|
15
|
+
```
|
16
|
+
|
17
|
+
**S-node Windows installation**
|
18
|
+
|
19
|
+
Requirements:
|
20
|
+
* Windows 7+ / Windows Server 2003+
|
21
|
+
* PowerShell v2+
|
22
|
+
|
23
|
+
Run this command on **PowerShell (PS)** as `Administrator` user:
|
24
|
+
|
25
|
+
```powershell
|
26
|
+
Set-ExecutionPolicy Bypass -Scope Process -Force; iex ((New-Object System.Net.WebClient).DownloadString('https://raw.githubusercontent.com/teuton-software/teuton/master/install/windows/windows_s-node_install.ps1'))
|
27
|
+
```
|
28
|
+
|
29
|
+
**S-node Mac OS X installation**
|
30
|
+
|
31
|
+
Run this command as `root` user:
|
32
|
+
|
33
|
+
```bash
|
34
|
+
curl -sL https://raw.githubusercontent.com/teuton-software/teuton/master/install/mac/macosx_s-node_install.sh | bash
|
35
|
+
```
|
@@ -0,0 +1,76 @@
|
|
1
|
+
[<< back](README.md)
|
2
|
+
|
3
|
+
# T-NODE installation
|
4
|
+
|
5
|
+
# 1. Recommended
|
6
|
+
|
7
|
+
**Installation**
|
8
|
+
|
9
|
+
1. Install Ruby on your system.
|
10
|
+
2. `gem install teuton`
|
11
|
+
|
12
|
+
Run `teuton version` to check the installed version.
|
13
|
+
|
14
|
+
**Update**
|
15
|
+
|
16
|
+
`gem teuton update`.
|
17
|
+
|
18
|
+
**Uninstall**
|
19
|
+
|
20
|
+
`gem uninstall teuton`.
|
21
|
+
|
22
|
+
# 2. Problems
|
23
|
+
|
24
|
+
Don't find `teuton` command (OpenSUSE distro, for example), try this:
|
25
|
+
|
26
|
+
Option A:
|
27
|
+
* `ruby -v`, display your current ruby version. Suppose it is "2.5".
|
28
|
+
* Run `teuton.ruby2.5`, instead of `teuton`.
|
29
|
+
|
30
|
+
Option B:
|
31
|
+
* `find /usr/lib64/ruby -name teuton`, to find absolute path to teuton command.
|
32
|
+
* `sudo ln -s /PATH/TO/bin/teuton /usr/local/bin/teuton`, to create symbolic link to teuton command.
|
33
|
+
|
34
|
+
# 3. Installation scripts
|
35
|
+
|
36
|
+
If you don't know how to install Ruby on your system, execute this script to run automatical installation for your OS.
|
37
|
+
|
38
|
+
**T-node GNU/Linux installation**
|
39
|
+
|
40
|
+
Run this command as `root` user:
|
41
|
+
|
42
|
+
```bash
|
43
|
+
wget -qO- https://raw.githubusercontent.com/teuton-software/teuton/master/install/linux/linux_t-node_install.sh | bash
|
44
|
+
```
|
45
|
+
|
46
|
+
**T-node Windows installation**
|
47
|
+
|
48
|
+
Requirements:
|
49
|
+
* Windows 7+ / Windows Server 2003+
|
50
|
+
* PowerShell v2+
|
51
|
+
|
52
|
+
Run this command on **PowerShell (PS)** as `Administrator` user:
|
53
|
+
|
54
|
+
```powershell
|
55
|
+
Set-ExecutionPolicy Bypass -Scope Process -Force; iex ((New-Object System.Net.WebClient).DownloadString('https://raw.githubusercontent.com/teuton-software/teuton/master/install/windows/windows_t-node_install.ps1'))
|
56
|
+
```
|
57
|
+
|
58
|
+
**T-node Mac OS X installation**
|
59
|
+
|
60
|
+
Run this command as admin user (member of `admin` group):
|
61
|
+
|
62
|
+
```bash
|
63
|
+
curl -sL https://raw.githubusercontent.com/teuton-software/teuton/master/install/mac/macosx_t-node_install.sh | bash
|
64
|
+
```
|
65
|
+
|
66
|
+
# 4. Vagrant/Docker
|
67
|
+
|
68
|
+
Choose this way if you plan to install Teuton into virtual machines or containers, and you are familiar with Vagrant and Docker technologies.
|
69
|
+
|
70
|
+
[Installation using Vagrant or Docker](vagrant_docker.md)
|
71
|
+
|
72
|
+
# 5. Source code
|
73
|
+
|
74
|
+
If you want to install Teuton by your own, or there are not installation scripts for your OS, and you don't want to use Vagrant then... here you have information how to install all the required packages for Teuton.
|
75
|
+
|
76
|
+
[Manual installation](manual.md)
|
@@ -0,0 +1,28 @@
|
|
1
|
+
|
2
|
+
[<< back](README.md)
|
3
|
+
|
4
|
+
# new test
|
5
|
+
|
6
|
+
Create skeleton for a new project: `teuton create foo`
|
7
|
+
|
8
|
+
```
|
9
|
+
> teuton new foo
|
10
|
+
|
11
|
+
[INFO] Creating foo project skeleton
|
12
|
+
* Create dir => foo
|
13
|
+
* Create file => foo/config.yaml
|
14
|
+
* Create file => foo/start.rb
|
15
|
+
```
|
16
|
+
|
17
|
+
> NOTA: It is posible to create these files by hand.
|
18
|
+
|
19
|
+
This command will create:
|
20
|
+
|
21
|
+
| File/Directory | Description |
|
22
|
+
| --------------- | -------------- |
|
23
|
+
| foo | Base directory |
|
24
|
+
| foo/start.rb | Main Script |
|
25
|
+
| foo/config.yaml | YAML configuration file |
|
26
|
+
|
27
|
+
|
28
|
+
Now it is time to customize your targets.
|
@@ -1,18 +1,15 @@
|
|
1
1
|
[<< back](README.md)
|
2
2
|
|
3
|
-
#
|
3
|
+
# target
|
4
4
|
|
5
|
-
|
6
|
-
A target is a feature you want to measure or check.
|
5
|
+
A [target](../dsl/target.md) is a feature you want to check. Targets are defined into `group` sections and every evaluation has 3 parts:
|
7
6
|
|
8
|
-
|
9
|
-
2. [Execution section](#execution-section)
|
10
|
-
3. [Run test](#run-test)
|
11
|
-
4. [Output reports](#output-reports)
|
7
|
+
## Target definition
|
12
8
|
|
13
|
-
|
9
|
+
* [target](dsl/target.md): Description of the element to be tested.
|
10
|
+
* [run](../dsl/run.md): Execute a command `id david` on localhost.
|
11
|
+
* [expect](../&dsl/expect.md): Verify that the result contains expected value.
|
14
12
|
|
15
|
-
Test definition section (Group):
|
16
13
|
```ruby
|
17
14
|
group "Learn about targets" do
|
18
15
|
|
@@ -23,16 +20,14 @@ group "Learn about targets" do
|
|
23
20
|
end
|
24
21
|
```
|
25
22
|
|
26
|
-
|
27
|
-
* **target**: Description of the element to be tested.
|
28
|
-
* **run**: Execute a command `id david` on localhost.
|
29
|
-
* **expect**: Ensure the result contains expected value.
|
30
|
-
|
31
|
-
> In this example, localhost's OS must be GNU/Linux (any other compatible OS) because the command used is `id david`.
|
23
|
+
> In this example, our localhost's OS is GNU/Linux (or any other compatible OS) because the command executed is `id david`.
|
32
24
|
|
33
25
|
## Execution section
|
34
26
|
|
35
|
-
|
27
|
+
When we run this teuton test, the execution section (`play`) is processed. This seccion now contains this:
|
28
|
+
|
29
|
+
* [show](../dsl/show.md): display process information on screen.
|
30
|
+
* [export](../dsl/export.md): build output reports.
|
36
31
|
|
37
32
|
```ruby
|
38
33
|
play do
|
@@ -41,15 +36,13 @@ play do
|
|
41
36
|
end
|
42
37
|
```
|
43
38
|
|
44
|
-
|
45
|
-
* **show**: display process information on screen.
|
46
|
-
* **export**: build output reports.
|
39
|
+
## Example
|
47
40
|
|
48
|
-
|
41
|
+
Execute this command to run the test:
|
49
42
|
|
50
|
-
|
43
|
+
```console
|
44
|
+
> teuton run examples/01-target
|
51
45
|
|
52
|
-
```bash
|
53
46
|
CASE RESULTS
|
54
47
|
+------+-----------+-------+-------+
|
55
48
|
| CASE | MEMBERS | GRADE | STATE |
|
@@ -57,11 +50,9 @@ CASE RESULTS
|
|
57
50
|
+------+-----------+-------+-------+
|
58
51
|
```
|
59
52
|
|
60
|
-
|
61
|
-
|
62
|
-
**Output directory**: reports created into `var/01-target/` output directory.
|
53
|
+
Report files are created into `var/02-target/` folder:
|
63
54
|
|
64
|
-
```
|
55
|
+
```console
|
65
56
|
var
|
66
57
|
└── 01-target
|
67
58
|
├── case-01.txt
|
@@ -69,9 +60,11 @@ var
|
|
69
60
|
└── resume.txt
|
70
61
|
```
|
71
62
|
|
72
|
-
|
63
|
+
Let's see one report:
|
64
|
+
|
65
|
+
```
|
66
|
+
> more var/02-target/case-01.txt
|
73
67
|
|
74
|
-
```bash
|
75
68
|
CONFIGURATION
|
76
69
|
+-------------+-----------+
|
77
70
|
| tt_members | anonymous |
|