teuton 2.3.11 → 2.4.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (68) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +45 -13
  3. data/docs/CHANGELOG.md +0 -13
  4. data/docs/changelog/todo.md +26 -0
  5. data/docs/changelog/v2.4.md +6 -2
  6. data/docs/dsl/execution/export.md +11 -16
  7. data/docs/dsl/execution/show.md +22 -7
  8. data/docs/ideas/{ideas.md → todo.md} +8 -16
  9. data/docs/install/README.md +26 -42
  10. data/docs/install/s-node.md +35 -0
  11. data/docs/install/t-node.md +76 -0
  12. data/docs/learn/01-target.md +34 -66
  13. data/docs/learn/02-config.md +35 -56
  14. data/docs/learn/03-remote_hosts.md +20 -1
  15. data/docs/learn/04-new_test.md +4 -4
  16. data/docs/learn/05-use.md +3 -4
  17. data/docs/learn/06-debug.md +6 -9
  18. data/docs/learn/07-log.md +14 -14
  19. data/docs/learn/08-readme.md +4 -4
  20. data/docs/learn/09-preserve.md +1 -1
  21. data/docs/learn/13-include.md +13 -6
  22. data/docs/learn/14-alias.md +14 -8
  23. data/docs/learn/17-hide-feedback.md +52 -0
  24. data/docs/learn/README.md +8 -15
  25. data/lib/teuton/case_manager/case/case.rb +2 -5
  26. data/lib/teuton/case_manager/case/dsl/expect.rb +2 -4
  27. data/lib/teuton/case_manager/case/dsl/log.rb +1 -2
  28. data/lib/teuton/case_manager/case/dsl/send.rb +4 -2
  29. data/lib/teuton/case_manager/case/play.rb +1 -2
  30. data/lib/teuton/case_manager/case/runner.rb +6 -7
  31. data/lib/teuton/case_manager/case_manager.rb +18 -12
  32. data/lib/teuton/case_manager/check_cases.rb +5 -7
  33. data/lib/teuton/case_manager/dsl.rb +1 -1
  34. data/lib/teuton/case_manager/export_manager.rb +13 -15
  35. data/lib/teuton/case_manager/hall_of_fame.rb +20 -16
  36. data/lib/teuton/case_manager/main.rb +1 -2
  37. data/lib/teuton/case_manager/report.rb +3 -3
  38. data/lib/teuton/report/formatter/base_formatter.rb +8 -7
  39. data/lib/teuton/report/formatter/{array_formatter.rb → default/array.rb} +44 -9
  40. data/lib/teuton/report/formatter/default/colored_text.rb +7 -0
  41. data/lib/teuton/report/formatter/default/html.rb +24 -0
  42. data/lib/teuton/report/formatter/default/json.rb +15 -0
  43. data/lib/teuton/report/formatter/{txt_formatter.rb → default/txt.rb} +4 -3
  44. data/lib/teuton/report/formatter/{xml_formatter.rb → default/xml.rb} +10 -4
  45. data/lib/teuton/report/formatter/default/yaml.rb +15 -0
  46. data/lib/teuton/report/formatter/formatter.rb +55 -0
  47. data/lib/teuton/report/formatter/moodle_csv_formatter.rb +4 -10
  48. data/lib/teuton/report/formatter/{resume_array_formatter.rb → resume/array.rb} +4 -7
  49. data/lib/teuton/report/formatter/resume/colored_text.rb +7 -0
  50. data/lib/teuton/report/formatter/{resume_html_formatter.rb → resume/html.rb} +7 -9
  51. data/lib/teuton/report/formatter/{resume_json_formatter.rb → resume/json.rb} +4 -4
  52. data/lib/teuton/report/formatter/{resume_txt_formatter.rb → resume/txt.rb} +4 -6
  53. data/lib/teuton/report/formatter/{resume_yaml_formatter.rb → resume/yaml.rb} +4 -3
  54. data/lib/teuton/report/report.rb +60 -43
  55. data/lib/teuton/report/show.rb +38 -24
  56. data/lib/teuton/version.rb +1 -1
  57. data/lib/teuton.rb +2 -1
  58. metadata +38 -35
  59. data/docs/install/scripts.md +0 -96
  60. data/lib/teuton/case_manager/show.rb +0 -24
  61. data/lib/teuton/report/close.rb +0 -38
  62. data/lib/teuton/report/formatter/csv_formatter.rb +0 -25
  63. data/lib/teuton/report/formatter/formatter_factory.rb +0 -79
  64. data/lib/teuton/report/formatter/html_formatter.rb +0 -57
  65. data/lib/teuton/report/formatter/json_formatter.rb +0 -12
  66. data/lib/teuton/report/formatter/list_formatter.rb +0 -65
  67. data/lib/teuton/report/formatter/resume_list_formatter.rb +0 -62
  68. data/lib/teuton/report/formatter/yaml_formatter.rb +0 -15
@@ -1,19 +1,16 @@
1
1
  [<< back](README.md)
2
2
 
3
- # Example: 02-config
3
+ # Example: config
4
4
 
5
- * Learn how to use config file.
6
- * Use params defined into config files.
7
- * It's good idea save variable data separated into external config file.
5
+ _It's good idea save variables into config file._
8
6
 
9
- 1. [Config file](#config-file).
10
- 2. [Definition section](#definition-section).
11
- 3. [Execution section](#execution-section).
12
- 4. [Results](#results).
7
+ Learn:
8
+ * How to use config file.
9
+ * How to use params defined into config files.
13
10
 
14
11
  ## Config file
15
12
 
16
- By default, `config.yaml` is our config file. Let's an example:
13
+ By default, `config.yaml` is our default config file. Example:
17
14
 
18
15
  ```yaml
19
16
  ---
@@ -22,12 +19,14 @@ cases:
22
19
  - tt_members: Student-name-1
23
20
  username: root
24
21
  - tt_members: Student-name-2
25
- username: vargas
22
+ username: david
26
23
  ```
27
24
 
25
+ > **How to choose another config file?** Read this [document](../commands/example_run.md#3-choosing-config-file).
26
+
28
27
  ## Definition section
29
28
 
30
- By default, `start.rb` it's our main execution file.
29
+ By default, `start.rb` it's our main execution file. Example:
31
30
 
32
31
  ```ruby
33
32
  group "Reading params from config file" do
@@ -39,15 +38,14 @@ group "Reading params from config file" do
39
38
  end
40
39
  ```
41
40
 
42
- In this section we define targets using keywords: target, run, expect and get.
43
-
44
- * **get** keyword is used to read params from configuracion file. It's posible personalize tests with diferent values for every case.
41
+ In this section, we define targets using `target`, `run`, `expect` and `get` keywords.
45
42
 
46
- > NOTE: In this example, we assume GNU/Linux as localhost's OS.
43
+ * **get** keyword read params from configuration file. It's posible personalize tests with diferent values for every case.
47
44
 
48
45
  ## Execution section
49
46
 
50
47
  Main execution block:
48
+
51
49
  ```ruby
52
50
  play do
53
51
  show
@@ -55,41 +53,25 @@ play do
55
53
  end
56
54
  ```
57
55
 
58
- Runing this example and see `show` keyword output:
56
+ This example run test and show (`show` keyword) output on screen:
59
57
 
60
- ```bash
61
- > teuton run --no-color examples/learn-02-config
62
- CONFIGURATION
63
- +---------------+----------------------------------------+
64
- | tt_title | Executing [teuton] (version 2.2.0) |
65
- | tt_scriptname | examples/learn-02-config/start.rb |
66
- | tt_configfile | examples/learn-02-config/config.yaml |
67
- | tt_pwd | /home/david/proy/repos/teuton.d/teuton |
68
- | tt_testname | learn-02-config |
69
- | tt_sequence | false |
70
- +---------------+----------------------------------------+
71
-
72
- CASES
58
+ ```console
59
+ > teuton run examples/02-config
60
+
61
+ CASE RESULTS
73
62
  +------+----------------+-------+-------+
74
63
  | CASE | MEMBERS | GRADE | STATE |
75
- | 01 | Student-name-1 | 100 | |
76
- | 02 | Student-name-2 | 0 | ? |
64
+ | 01 | Student-name-1 | 100.0 ||
65
+ | 02 | Student-name-2 | 0.0 | ? |
77
66
  +------+----------------+-------+-------+
78
-
79
- RESULTS
80
- +-------------+---------------------------+
81
- | start_time | 2020-10-10 12:37:54 +0100 |
82
- | finish_time | 2020-10-10 12:37:54 +0100 |
83
- | duration | 0.002054143 |
84
- +-------------+---------------------------+
85
67
  ```
86
68
 
87
69
  ## Results
88
70
 
89
- Output reports are saved into `var/learn-02-config/` directory. Detail output report is created for every case.
71
+ Output reports are saved into `var/02-config/` directory. Detail output report is created for every case.
90
72
 
91
73
  ```
92
- var/learn-02-config
74
+ var/02-config
93
75
  ├── case-01.txt
94
76
  ├── case-02.txt
95
77
  ├── moodle.csv
@@ -99,23 +81,22 @@ var/learn-02-config
99
81
  Let's see `export` keyword output for case 01.
100
82
 
101
83
  ```
102
- > more var/learn-02-config/case-01.txt
84
+ > more var/02-config/case-01.txt
103
85
  CONFIGURATION
104
- +-------------+-----------------+
105
- | tt_members | Student-name-1 |
106
- | tt_sequence | false |
107
- | tt_skip | false |
108
- | tt_testname | learn-02-config |
109
- | username | root |
110
- +-------------+-----------------+
111
-
86
+ +-------------+----------------+
87
+ | tt_members | Student-name-1 |
88
+ | tt_sequence | false |
89
+ | tt_skip | false |
90
+ | tt_testname | 02-config |
91
+ | username | root |
92
+ +-------------+----------------+
112
93
 
113
94
  GROUPS
114
95
  - Reading params from config file
115
96
  01 (1.0/1.0)
116
- Description : Create user root (username)
97
+ Description : Create user root
117
98
  Command : id root
118
- Duration : 0.001 (local)
99
+ Duration : 0.002 (local)
119
100
  Alterations : find(root) & count
120
101
  Expected : Greater than 0 (String)
121
102
  Result : 1 (Integer)
@@ -123,9 +104,9 @@ GROUPS
123
104
  RESULTS
124
105
  +--------------+---------------------------+
125
106
  | case_id | 01 |
126
- | start_time | 2020-10-10 12:37:54 +0100 |
127
- | finish_time | 2020-10-10 12:37:54 +0100 |
128
- | duration | 0.001762191 |
107
+ | start_time | 2022-12-24 13:33:49 +0000 |
108
+ | finish_time | 2022-12-24 13:33:49 +0000 |
109
+ | duration | 0.001777756 |
129
110
  | unique_fault | 0 |
130
111
  | max_weight | 1.0 |
131
112
  | good_weight | 1.0 |
@@ -134,5 +115,3 @@ RESULTS
134
115
  | grade | 100 |
135
116
  +--------------+---------------------------+
136
117
  ```
137
-
138
- > **How to choose another config file?** Read this [document](../commands/example_run.md#3-choosing-config-file).
@@ -81,11 +81,30 @@ end
81
81
 
82
82
  * `send copy_to: :host1` keyword copy output report into remote machine (host1).
83
83
 
84
+ ## Screen output
85
+
86
+ ```
87
+ CASE RESULTS
88
+ +------+---------------+-------+-------+
89
+ | CASE | MEMBERS | GRADE | STATE |
90
+ | 01 | Darth Maul | 0.0 | ? |
91
+ | - | - | 0.0 | |
92
+ | 03 | Obiwan Kenobi | 0.0 | ? |
93
+ +------+---------------+-------+-------+
94
+
95
+ CONN ERRORS
96
+ +------+---------------+-------+------------------+
97
+ | CASE | MEMBERS | HOST | ERROR |
98
+ | 01 | Darth Maul | host1 | host_unreachable |
99
+ | 03 | Obiwan Kenobi | host1 | host_unreachable |
100
+ +------+---------------+-------+------------------+
101
+ ```
102
+
84
103
  ## Results
85
104
 
86
105
  ```
87
106
  var
88
- └── learn-03-remote-hosts
107
+ └── 03-remote-hosts
89
108
  ├── case-01.json
90
109
  ├── case-01.txt
91
110
  ├── case-03.json
@@ -13,8 +13,8 @@ Steps:
13
13
 
14
14
  Create skeleton for a new project: `teuton create foo`
15
15
 
16
- ```bash
17
- $ teuton new foo
16
+ ```
17
+ > teuton new foo
18
18
 
19
19
  [INFO] Creating foo project skeleton
20
20
  * Create dir => foo
@@ -22,7 +22,7 @@ $ teuton new foo
22
22
  * Create file => foo/start.rb
23
23
  ```
24
24
 
25
- > It's posible to create these files by hand.
25
+ > NOTA: It is posible to create these files by hand.
26
26
 
27
27
  This command will create:
28
28
 
@@ -81,7 +81,7 @@ Use a YAML file (`foo/config.yaml`) or JSON for your own configurations. In this
81
81
  Now we only have to run the challenge:
82
82
 
83
83
  ```bash
84
- $ teuton foo
84
+ > teuton run foo
85
85
  ```
86
86
 
87
87
  Output files are saved into `var/foo` directory.
data/docs/learn/05-use.md CHANGED
@@ -16,8 +16,9 @@ Learn how to:
16
16
  This example has more files:
17
17
 
18
18
  ```bash
19
- $ tree example/learn-04-use
20
- example/learn-04-require
19
+ > tree example/04-use
20
+
21
+ example/04-require
21
22
  ├── config.yaml
22
23
  ├── network.rb
23
24
  ├── README.md
@@ -25,8 +26,6 @@ example/learn-04-require
25
26
  └── users.rb
26
27
  ```
27
28
 
28
- * `README.md` and `config.yaml` are the same as previous example.
29
-
30
29
  ## Execution section
31
30
 
32
31
  Previous `start.rb` file is now splited in: start.rb, users.rb and network.rb.
@@ -14,8 +14,9 @@ Learn how to:
14
14
 
15
15
  ## Tree directory
16
16
 
17
- ```bash
18
- $ tree learn/learn-06-debug
17
+ ```
18
+ > tree learn/learn-06-debug
19
+
19
20
  example/learn-06-debug
20
21
  ├── config.yaml
21
22
  ├── external.rb
@@ -48,12 +49,7 @@ When this happend, sometimes we need to verify or check rb file consistency and
48
49
 
49
50
  Let's see example `teuton check examples/learn-01-target`:
50
51
 
51
- ```bash
52
- [INFO] ScriptPath => examples/learn-01-target/start.rb
53
- [INFO] ConfigPath => examples/learn-01-target/config.yaml
54
- [INFO] Pwd => /mnt/home/leap/proy/repos/teuton.d/teuton
55
- [INFO] TestName => learn-01-target
56
-
52
+ ```
57
53
  +----------------------------+
58
54
  | GROUP: Learn about targets |
59
55
  +----------------------------+
@@ -78,12 +74,13 @@ Let's see example `teuton check examples/learn-01-target`:
78
74
  +----------------------+
79
75
  | Revising CONFIG file |
80
76
  +----------------------+
81
- [WARN] File ./examples/learn-01-target/config.yaml not found!
77
+ [WARN] File /home/david/proy/repos/teuton.d/teuton/examples/01-target/config.yaml not found!
82
78
  [INFO] Recomended content:
83
79
  ---
84
80
  :global:
85
81
  :cases:
86
82
  - :tt_members: VALUE
83
+
87
84
  ```
88
85
 
89
86
  In this case, Teuton detects that there isn't exist config file, and propose us content for `config.yaml`.
data/docs/learn/07-log.md CHANGED
@@ -27,27 +27,27 @@ end
27
27
 
28
28
  ## Result
29
29
 
30
- **Let's see example**: Content of `var/learn-07-log/case-01.txt` file.
30
+ **Let's see example**: Content of `var/07-log/case-01.txt` file.
31
31
 
32
- ```bash
32
+ ```
33
33
  CONFIGURATION
34
- +-------------+--------------+
35
- | tt_members | anonymous |
36
- | tt_sequence | false |
37
- | tt_skip | false |
38
- | tt_testname | learn-07-log |
39
- +-------------+--------------+
34
+ +-------------+-----------+
35
+ | tt_members | anonymous |
36
+ | tt_sequence | false |
37
+ | tt_skip | false |
38
+ | tt_testname | 07-log |
39
+ +-------------+-----------+
40
40
 
41
41
  LOGS
42
- [19:23:20] : Using log messages...
43
- [19:23:20] ERROR: Problem detected!
42
+ [13:45:02] : Using log messages...
43
+ [13:45:02] ERROR: Problem detected!
44
44
 
45
45
  GROUPS
46
46
  - Learning about log messages
47
47
  01 (1.0/1.0)
48
48
  Description : Create user david
49
49
  Command : id david
50
- Duration : 0.003 (local)
50
+ Duration : 0.002 (local)
51
51
  Alterations : find(david) & count
52
52
  Expected : Greater than 0 (String)
53
53
  Result : 1 (Integer)
@@ -55,9 +55,9 @@ GROUPS
55
55
  RESULTS
56
56
  +--------------+---------------------------+
57
57
  | case_id | 01 |
58
- | start_time | 2020-04-22 19:23:20 +0100 |
59
- | finish_time | 2020-04-22 19:23:20 +0100 |
60
- | duration | 0.003096755 |
58
+ | start_time | 2022-12-24 13:45:02 +0000 |
59
+ | finish_time | 2022-12-24 13:45:02 +0000 |
60
+ | duration | 0.001900685 |
61
61
  | unique_fault | 0 |
62
62
  | max_weight | 1.0 |
63
63
  | good_weight | 1.0 |
@@ -1,6 +1,6 @@
1
1
  [<< back](README.md)
2
2
 
3
- # Example: 07-readme
3
+ # Example: readme
4
4
 
5
5
  Create README files (with test instructions) from our test definition.
6
6
 
@@ -35,15 +35,15 @@ There exists some `readme` instructions after `group` and `target` lines.
35
35
  To generate automatically a README file from previous test, execute this:
36
36
 
37
37
  ```
38
- teuton readme example/learn-08-readme > example/learn-08-readme/README.md
38
+ teuton readme example/08-readme > example/08-readme/README.md
39
39
  ```
40
40
 
41
41
  ## Result
42
42
 
43
- **Let's see the output**: Content of `example/learn-08-readme/README.md` file.
43
+ **Let's see the output**: Content of `example/08-readme/README.md` file.
44
44
 
45
45
  ---
46
- # learn-08-readme
46
+ # 08-readme
47
47
 
48
48
  ## Customize readme output
49
49
 
@@ -23,7 +23,7 @@ end
23
23
 
24
24
  ## Result
25
25
 
26
- Example, executing `teuton run example/learn-09-preserve` twice:
26
+ Example, executing `teuton run example/09-preserve` twice:
27
27
 
28
28
  ```
29
29
  var
@@ -2,13 +2,17 @@
2
2
 
3
3
  # Example: 13-include
4
4
 
5
- Until now, all the tests we have seen came with a configuration file (`config.yaml`) that contained all the parameters that will later be used in the test. It is also possible to have the information distributed among several configuration files.
5
+ Use `tt-include` to include several config files into your main config file.
6
+
7
+ ## Explanation
8
+
9
+ Until now, all the examples we have seen use one configuration file (`config.yaml`) that contain all the parameters required by the test. It is possible to save configuration distributed among several files.
6
10
 
7
11
  Suppose we have the following file structure.
8
12
 
9
13
  ```
10
14
  ├── config.yaml
11
- ├── include_this_files
15
+ ├── moreconfigfiles
12
16
  │   ├── 02
13
17
  │   │   └── file02.yaml
14
18
  │   ├── file01.yaml
@@ -16,15 +20,15 @@ Suppose we have the following file structure.
16
20
  └── start.rb
17
21
  ```
18
22
 
19
- `config.yaml` will be the main config file. Using `tt_include` parameter, we define a folder where the rest of the configuration files will be.
23
+ `config.yaml` will be the main config file. We have defined `tt_include` parameter with a folder wich contains more configuration files.
20
24
 
21
- In this example the contents of the files in the include_this_files folder will be included in the configuration:
25
+ In this example the contents of all files in `moreconfigfiles` folder will be included when reading the config parameters:
22
26
 
23
27
  ```yaml
24
28
  ---
25
29
  # Fiel: config.yaml
26
30
  :global:
27
- :tt_include: include_this_files
31
+ :tt_include: moreconfigfiles
28
32
  :cases:
29
33
  ```
30
34
 
@@ -41,19 +45,22 @@ CASE RESULTS
41
45
  +------+---------+-------+-------+
42
46
  ```
43
47
 
44
- Config files into `include_this_files` folder:
48
+ Config files into `moreconfigfiles` folder:
45
49
 
46
50
  ```yaml
51
+ # moreconfigfiles/file01.yaml
47
52
  :tt_members: file01
48
53
  :username: root
49
54
  ```
50
55
 
51
56
  ```yaml
57
+ # moreconfigfiles/02/file02.yaml
52
58
  :tt_members: file02
53
59
  :username: quigon
54
60
  ```
55
61
 
56
62
  ```yaml
63
+ # moreconfigfiles/file03.yml
57
64
  :tt_members: file03
58
65
  :username: vader
59
66
  ```
@@ -2,7 +2,11 @@
2
2
 
3
3
  # Example: 14-alias
4
4
 
5
- Supongamos que tenemos un test como el siguiente:
5
+ By using aliases we can adapt a configuration file, so that it can be used with many different tests.
6
+
7
+ ## Exanation
8
+
9
+ Suppose we have a test like the following:
6
10
 
7
11
  ```ruby
8
12
  group "Using alias" do
@@ -16,14 +20,14 @@ group "Using alias" do
16
20
  end
17
21
  ```
18
22
 
19
- Tenemos sólo 2 targets pero podríamos tener muchos más.
23
+ > REMEMBER:
24
+ > * We only have 2 targets but we could have many more.
25
+ > * `_username` is equivalent to `get(:username)`
20
26
 
21
- > Recordemos que `_username` es equivalente a `get(:username)`
22
-
23
- Sabemos que el fichero de configuración debe definir los valores para los parámetros `super` y `username`. Queremos aprovechar un fichero de configuración que ya teníamos de otro test, pero tiene el siguiente contenido:
27
+ Our test requires the `super` parameter but the configuration file has named it as `superuser`. Our configuration file define values for `supername` and `username` parameters. Let's see:
24
28
 
25
29
  ```yaml
26
- # Version 1
30
+ # First version
27
31
  # File: config.yaml
28
32
  global:
29
33
  cases:
@@ -32,10 +36,10 @@ cases:
32
36
  username: obiwan
33
37
  ```
34
38
 
35
- Podemos comprobar que nuestro test require el parámetro `super` pero el fichero de configuración lo ha nombrado como `superuser`.
39
+ We would like to take advantage of a configuration file that we already had from another test, without big changes. So we add an `alias`:
36
40
 
37
41
  ```yaml
38
- # Version 2
42
+ # Alias Version
39
43
  # File: config.yaml
40
44
  alias:
41
45
  super: :superuser
@@ -45,3 +49,5 @@ cases:
45
49
  superuser: root
46
50
  username: obiwan
47
51
  ```
52
+
53
+ Now our test will work correctly. Calling `get(:super)` will return the same value as doing `get(:superuser).
@@ -0,0 +1,52 @@
1
+ [<< back](README.md)
2
+
3
+ # Example: 17-hide-feedback
4
+
5
+ When exporting with `feedback: false` option we hide some items from exported reports. Hiden items: command, alterations, expected and result.
6
+
7
+ > More information about [export](../dsl/execution/export.md) keyword.
8
+
9
+ ## Explanation
10
+
11
+ Every time teuton is run, all cases are evaluated and when exporting the results, by default, all the information collected during the evaluation process is logged.
12
+
13
+ Each "target" contains the following fields:
14
+
15
+ * Identification: id, description
16
+ * Evaluation result: check(true/false)
17
+ * Punctuation: score, weight
18
+ * Check process: conn_type, command, duration, alterations, expected, result
19
+
20
+ Some of these fields should always be visible, such as: id, description, check, score, and weight. And others, more related to the process that perform teuton for verification can be hidden using the "feedback: false" parameter.
21
+
22
+ With "feedback: false" the fields are hidden: command, alterations, expected and result.
23
+ Más información sobre este texto de origen
24
+ Para obtener más información sobre la traducción, se necesita el texto de origen
25
+ Enviar comentarios
26
+ Paneles laterales
27
+
28
+ ## Execution section
29
+
30
+ Take a look at our test execution section (Play):
31
+ ```ruby
32
+ play do
33
+ show
34
+ export feedback: false
35
+ end
36
+ ```
37
+
38
+ ## Result
39
+
40
+ Executing `teuton run example/17-hide-feedback`:
41
+
42
+ ```
43
+ GROUPS
44
+ - Hide feedback from reports
45
+ 01 (1.0/1.0)
46
+ Description : Exits user root
47
+ Command : *******
48
+ Duration : 0.002 (local)
49
+ Alterations : ******************
50
+ Expected : ************** (String)
51
+ Result : * (Integer)
52
+ ```
data/docs/learn/README.md CHANGED
@@ -1,13 +1,10 @@
1
1
 
2
2
  [<< back](../../README.md)
3
3
 
4
- 1. [Learning](#learning)
5
- 2. [Examples](#examples)
6
- 3. [Videos](#videos)
4
+ # Learn
7
5
 
8
- # Learning
6
+ Learn how write your own Teuton tests:
9
7
 
10
- Learn how to use Teuton language to write your own tests:
11
8
  - [01 - Target](01-target.md)
12
9
  - [02 - Config file](02-config.md)
13
10
  - [03 - Remote hosts](03-remote_hosts.md)
@@ -21,17 +18,12 @@ Learn how to use Teuton language to write your own tests:
21
18
  - [11 - Moodle ID](11-moodle_id.md)
22
19
  - [12 - Get vars](12-get_vars.md)
23
20
  - [13 - Include](13-include.md)
24
- - Example 14 - Alias
25
- - Example 15 - Macros
26
- - [Example 16 - Exit codes](16-exit_codes.md)
27
- - [Videos](videos.md)
21
+ - [14 - Alias](14-alias.md)
22
+ - 15 - Macros
23
+ - [16 - Exit codes](16-exit_codes.md)
24
+ - [17 - Hide feedback](17-hide-feedback.md)
28
25
 
29
- # Examples
30
-
31
- More examples
32
- * Let's see examples at [teuton-tests](https://github.com/dvarrui/teuton-tests) GitHub repository.
33
- * Ask us by email at `teuton.software@protonmail.com` or Twitter at `@SoftwareTeuton`.
34
- * [ES - CHAPI19: Teuton demo](https://github.com/dvarrui/proyectos-de-ejemplo/tree/master/charlas/teuton)
26
+ Mores examples at [teuton-tests](https://github.com/dvarrui/teuton-tests) GitHub repository.
35
27
 
36
28
  # Videos
37
29
 
@@ -40,6 +32,7 @@ But if you want to see Spanish videos, here you are:
40
32
 
41
33
  Teuton (v2.0):
42
34
  * [ES - CHAPI19: Charla Teuton](https://youtu.be/KFWQDfNAFxI?t=12221)
35
+ * [ES - CHAPI19: Teuton demo](https://github.com/dvarrui/proyectos-de-ejemplo/tree/master/charlas/teuton)
43
36
 
44
37
  Sysadmingame (Teuton v1.0)
45
38
  * [Sysadmingame (1 de 3): Instalación del programa](https://youtu.be/dnyMq9_KDco)
@@ -2,6 +2,7 @@
2
2
 
3
3
  require_relative "../../application"
4
4
  require_relative "../../report/report"
5
+ require_relative "../../report/show"
5
6
  require_relative "../utils"
6
7
  require_relative "main"
7
8
  require_relative "result/result"
@@ -17,7 +18,6 @@ require_relative "builtin/main"
17
18
  # * grade
18
19
  # * members
19
20
  # * skip
20
- # * show
21
21
  # * read_filename ???
22
22
  class Case
23
23
  include DSL
@@ -42,6 +42,7 @@ class Case
42
42
 
43
43
  # Define Case Report
44
44
  @report = Report.new(@id)
45
+ # TODO: Move folder creation from case to parent classes?
45
46
  @report.output_dir = File.join("var", @config.global[:tt_testname])
46
47
  ensure_dir @report.output_dir
47
48
 
@@ -100,10 +101,6 @@ class Case
100
101
 
101
102
  alias skip? skip
102
103
 
103
- def show
104
- @report.show
105
- end
106
-
107
104
  private
108
105
 
109
106
  def read_filename(filename)
@@ -1,7 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require "colorize"
4
-
5
3
  module DSL
6
4
  # expect <condition>, :weight => <value>
7
5
  def expect(input, args = {})
@@ -10,7 +8,7 @@ module DSL
10
8
  elsif input.instance_of?(String) || input.instance_of?(Regexp) || input.instance_of?(Array)
11
9
  expect_any input
12
10
  else
13
- puts "[TypeError] expect #{input} (#{input.class})"
11
+ puts Rainbow("[TypeError] expect #{input} (#{input.class})").red
14
12
  end
15
13
  end
16
14
 
@@ -30,7 +28,7 @@ module DSL
30
28
  app = Application.instance
31
29
  c = app.letter[:bad]
32
30
  c = app.letter[:good] if cond
33
- verbose c.colorize(:green)
31
+ verbose Rainbow(c).green
34
32
  end
35
33
 
36
34
  def expect_any(input, args = {})
@@ -1,5 +1,4 @@
1
- # frozen_string_literal: true
2
-
1
+ require "rainbow"
3
2
  ##
4
3
  # Define DSL#log function
5
4
  module DSL
@@ -37,9 +37,11 @@ module DSL
37
37
  Net::SFTP.start(ip, username, password: password, port: port) do |sftp|
38
38
  sftp.upload!(localfilepath, remotefilepath)
39
39
  end
40
- verboseln("=> [ OK ] #{(get(:tt_members)[0, 15]).ljust(16)} : #{remotefilepath}")
40
+ msg = Rainbow("==> File '#{remotefilepath}' of '#{get(:tt_members)}' has been copied").green
41
+ verboseln(msg)
41
42
  rescue
42
- verboseln("=> [ERROR] #{(get(:tt_members)[0, 15]).ljust(16)} : scp #{localfilepath} => #{remotefilepath}")
43
+ msg = Rainbow("==> [FAIL] #{get(:tt_members)}: 'scp #{localfilepath}' to #{remotefilepath}").red
44
+ verboseln(msg)
43
45
  end
44
46
  end
45
47