pdqtest 1.9.9beta7 → 1.9.9beta8

Sign up to get free protection for your applications and to get access to all the features.
data/doc/pdk.md CHANGED
@@ -1,7 +1,7 @@
1
1
  # PDK Integration
2
2
 
3
- First off, what is PDK? PDK is Puppet's development kit. The bits we are
4
- interested in right now are:
3
+ First off, what is PDK? [PDK](https://github.com/puppetlabs/pdk/) is Puppet's
4
+ development kit. The bits we are interested in right now are:
5
5
  * Validation `pdk validate...`
6
6
  * Testing `pdk test...`
7
7
  * Packaging `pdk build...`
@@ -34,8 +34,8 @@ VMs in order to extract maximum speed. It offers a different approach to
34
34
  * Complex OS commands that need to report different state between puppet
35
35
  runs can be mocked with Python and a small SQLite database or simple
36
36
  text files (eg the `sysctl` command)
37
- * Fake different Unix-like Operating Systems like AIX by subverting the
38
- commands that your puppet code would executes. This is particularly
37
+ * Fake different Unix-like Operating Systems such as AIX by subverting the
38
+ commands that your puppet code would execute. This is particularly
39
39
  useful in this case since there are no AIX desktop virtualisation
40
40
  solutions right now and there probably never will be
41
41
  * See [examples](examples.md) for real-world modules using these
@@ -52,7 +52,7 @@ for and you should look towards solutions like Beaker or
52
52
 
53
53
  ## How does PDQTest work with PDK? Do I have to choose?
54
54
 
55
- No you don't have to choose! PDQTest integrates with PDK by making the minimal
55
+ No, you don't have to choose! PDQTest integrates with PDK by making the minimal
56
56
  amount of invasive changes:
57
57
 
58
58
  ### New projects
@@ -68,12 +68,15 @@ After running `pdqtest init`, run `pdk update` to have PDK process the
68
68
 
69
69
  ### Existing PDQTest projects
70
70
  To make upgrading to PDQTest 2.0 + PDK easy for our existing users, we automate
71
- the workflow normally carried out by `pdk convert`:
71
+ the workflow normally carried out by `pdk convert`.
72
72
 
73
73
  We do not include the entire set of files that would have been generated by
74
74
  `pdk convert` or `pdk new module`. If you want the full set, you should run
75
- one of these commands yourself before `pdqtest init` and they will be left alone
76
- unless PDK starts writing new files that we are already using.
75
+ one of these commands yourself before `pdqtest init` and the resulting files
76
+ will be left alone unless PDK starts writing new files that we are already
77
+ using.
78
+
79
+ #### Key integration points
77
80
 
78
81
  **metadata.json**
79
82
 
@@ -131,17 +134,22 @@ or supported.
131
134
 
132
135
 
133
136
  ### PDQTest directory structure
134
- These are the files installed, files marked 🛠 are generated by PDK:
137
+ * 🛠 - File generated by PDK
138
+ * ⚡ - File updated/replaced when you run `pdqtest upgrade`:
135
139
 
136
140
  ```
137
- ├── bitbucket-pipelines.yml
141
+ ├── bitbucket-pipelines.yml
138
142
  ├── Gemfile 🛠
139
143
  ├── Gemfile.local
140
144
  ├── Gemfile.project
145
+ ├── .gitattributes 🛠
141
146
  ├── .gitignore 🛠
142
- ├── Makefile
143
- ├── make.ps1
147
+ ├── Makefile
148
+ ├── make.ps1
144
149
  ├── .pdkignore 🛠
150
+ ├── .pdqtest
151
+ │   ├── Gemfile ⚡
152
+ │   └── Gemfile.lock
145
153
  ├── .puppet-lint.rc
146
154
  ├── Rakefile 🛠
147
155
  ├── spec
@@ -151,10 +159,10 @@ These are the files installed, files marked 🛠 are generated by PDK:
151
159
  │   │   │   └── test.yaml
152
160
  │   │   └── hiera.yaml
153
161
  │   └── spec_helper.rb 🛠
154
- └── .travis.yml
162
+ └── .travis.yml
155
163
  ```
156
164
 
157
- The remaining files are specific to PDQTest - notably:
165
+ Notes:
158
166
  * `.travis.yml` - Complete test suite for Linux modules
159
167
  * `bitbucket-pipelines.yaml` - logical testing only (unit/RSpec)
160
168
  * `.puppet-lint.rc` - Make lint errors test failures, ignore double quotes, etc
@@ -162,119 +170,103 @@ The remaining files are specific to PDQTest - notably:
162
170
  * `make.ps1` - Essential launch script for Windows
163
171
  * `spec/fixtures/hiera.yaml` - Mock system-wide `hiera.yaml` file
164
172
  * `spec/fixtures/hieradata/test.yaml` - Mock system-wide hieradata
165
- * `Gemfile.project` - Used to enable the PDQTest gem (and any others you need)
173
+ * `Gemfile.project` - Used to enable additional gems in PDK if needed (eg for
174
+ RSpec)
166
175
  * `Gemfile.local` - Transient file created at runtime by `Makefile` or
167
- `make.ps1` to enable the PDQTest gem at runtime. This is a vital integration
168
- point, see details below
176
+ `make.ps1` to enable additional PDK gems see details below
169
177
  * `.gitignore` - PDK has a massive list of files to ignore for new projects so
170
- these are imported
171
-
178
+ these are imported and we add some of our own
179
+ * `.gitattributes` - PDK doesn't process this on `pdk update` so it ignores our
180
+ `.sync.yml` customisations. This is handy to force LF for teams working on
181
+ windows
182
+ * `.pdqtest/Gemfile` - it's **impossible** to share a `Gemfile` with PDK
183
+ (believe me I tried) Therefore we need our own and it lives here. See details
184
+ below.
185
+ * `.pdqtest/Gemfile.lock` - corresponding lock for PDQTest
172
186
 
173
187
  ## Why are the launch scripts essential/How does the PDQTest gem load itself?
188
+
189
+ ### Extra gems for `pdk` command
174
190
  PDK provides its own `Gemfile` to select the gems available at runtime. There
175
191
  are hooks in this file to load additional configuration from two locations:
176
192
  * `~/.gemfile`
177
193
  * `YOUR_PROJECT/Gemfile.local`
178
194
 
179
- We support side-by-side installation of all versions of PDQTest so that users
180
- are not forced to upgrade when they are not ready to, so we need a per-project
181
- way to load our gem into the bundle. `Gemfile.local` is perfect for this but we
182
- are not supposed to store permanent data in there according to PDK's generated
183
- `.gitignore`.
195
+ These are good for loading additional GEMs that run inside the PDK ruby
196
+ environment created by the `pdk` command _only_! PDK modifies it's `Gemfile` at
197
+ runtime according to the target being run and this which makes it unsafe for us
198
+ to load the `pdqtest` gem here, because the bundle will change while it is being
199
+ used.
184
200
 
185
- The simplest way to workaround this issue is for us to create a symlink from
186
- `Gemfile.project` to `Gemfile.local` at runtime and we _must_ use our launch
187
- scripts to do this since we are unable to use any Ruby code to do this trick
188
- since we are not yet in the bundle.
201
+ Using `pdk bundle exec` as basically an alias for `bundle exec` did not work as
202
+ PDQTest needs to call the `pdk` command for its lifecycle targets. This caused
203
+ serious errors on Windows.
189
204
 
190
- For this reason, you **must** launch PDQTest using the provided `Makefile` or
191
- `make.ps1` scripts, at least initially.
205
+ We are not supposed to store permanent data in `Gemfile.local` as its in
206
+ PDK's generated `.gitignore`. The workaround to this is for us to create our own
207
+ per-project `Gemfile` with the gems we would have liked to have put in
208
+ `Gemfile.local` and copy/symlink as required.
209
+
210
+ The main use of this is to load additional gems during the `pdk test unit` phase
211
+ that without customising via `.sync.yml` or a custom template repository
212
+ (although these should work too/instead).
192
213
 
193
214
  For further background see:
194
215
  * [PDK-1177](https://tickets.puppetlabs.com/browse/PDK-1177) and
195
216
  * [#50](https://github.com/declarativesystems/pdqtest/issues/50)
196
217
 
197
- ## When developing PDQTest, your version number **must** match a released version
198
- _This should only affects PDQTest developers - for posterity..._
199
-
200
- Due to some strange hackery between `pdk bundle` and `bundle exec` you have one
201
- more gotcha when it comes to using developing PDQTest and thats that the version
202
- number of the gem you build *MUST* match a released version of the gem on
203
- rubygems.org otherwise `bundle exec` will barf with errors like this:
218
+ ### Load PDQTest and supporting gems
219
+ Since PDK updates `Gemfile` during execution, the only sensible option for
220
+ loading PDQTest is to have our own directory containing our own `Gemfile`
221
+ and `Gemfile.lock`:
222
+ * `.pdqtest/Gemfile`
223
+ * `.pdqtest/Gemfile.lock`
224
+
225
+ This affords complete separation from PDK and lets us use the provided ruby. The
226
+ only caveat is that we must `cd` into the `.pdqtest` directory before executing
227
+ the `pdqtest` command.
228
+
229
+ When you run `pdqtest upgrade`, it will update `.pdqtest/Gemfile` with the newer
230
+ version of the `pdqtest` gem.
231
+
232
+ As ever, the per-project `.pdqtest/Gemfile` means that we support side-by-side
233
+ installation of all versions of PDQTest while letting PDK take over the main
234
+ `Gemfile` ensures full PDK compatibility.
235
+
236
+ ### `Makefile` and `make.ps1`
237
+ To support these two scenarios, `Makefile` and `make.ps1` automate the project
238
+ preparation (bundling/symlinking) by providing the following targets:
239
+ * `Gemfile.local`:
240
+ * Windows: Copy `Gemfile.project` to `Gemfile.local`, replacing any content,
241
+ then run `pdk bundle` to update PDKs gems
242
+ * Linux: Symlink `Gemfile.local` to `Gemfile.project`, then run `pdk bundle`
243
+ to update PDKs gems
244
+ * `pdqtestbundle` - run `bundle install` using system/custom ruby against
245
+ `.pdqtest/Gemfile`
246
+ * `pdkbundle` - run `pdk bundle install` to re-bundle PDK
247
+
248
+ The remaining targets all work by jumping into the `.pdqtest` directory and then
249
+ using `.pdqtest/Gemfile` to launch `pdqtest`. This avoids users having to jump
250
+ around the project directories to get work done.
204
251
 
205
- ```shell
206
- $ bundle exec pdqtest
207
- Could not find hiera-3.4.5 in any of the sources
208
- Run `bundle install` to install missing gems.
209
- ```
252
+ For this reason, you **must** launch PDQTest using the provided `Makefile` or
253
+ `make.ps1` scripts, at until your familiar with jumping to the `.pdqtest`
254
+ directory to run `bundle exec pdqtest` yourself.
210
255
 
211
- There seems no other way to fix this other than building the development gem
212
- with a version matching an existing release. The gem then needs to be installed
213
- using `gem install ...` and it will then magically start working. Using other
214
- gem tricks like setting `:path` will appear to work but fail when `bundle exec`
215
- is called. The other approach of trying to run everything with
216
- `pdk bundle exec pdqtest` fails with various errors depending what platform your
217
- on, presumably because `pdqtest` runs `pdk` command as part of its tests.
218
-
219
- The final final caveat of this approach is that the PDQTest gem dependencies are
220
- pinned at whatever the _real_ release uses, so if any were changed or added they
221
- need to be temporarily added to `Gemfile.project`
222
-
223
- The above works on Linux... For windows there is also the situation where:
224
- * PDK vendors its own gems that magically appear
225
- * PDK can only use "published" gems(specs?) it downloads - or appears to
226
- * when you go to `bundle install` without using PDK you blow up the lock
227
- file
228
- * When you `bundle exec pdqtest` you get the above error because _something_
229
- uses the old one `gemspec`
230
- * The answer seems to be:
231
- 1. use `gem 'pdqtest', :path=>'c:/vagrant/pdqtest'` in `Gemfile.local`
232
- 2. `pdk bundle install`
233
- 3. `bundle update pdqtest` - yes even though your not supposed to...
234
- 4. `bundle exec pdqtest` - now it should work... why is beyond me
235
- * If you still have errors:
236
- 1. `bundle install`
237
- 2. `rm Gemfile.lock`
238
- 3. `pdk bundle install` - working?
239
-
240
- Somtimes you just have to upload the whole gem file as a pre-release object:
241
- * Version set to x.x.xWHATEVER
242
- * `gem push pdqtest-x.x.xWHATEVER.gem`
243
- * `gem install pdqtest --pre`
244
-
245
-
246
- If your just want to use PDQTest, you will hopefully never have to worry about
247
- this... On the other hand, if this all sounds confusing... That's because it is!
248
256
 
249
257
  ## What happens when I upgrade PDQTest?
250
- When a new version of PDQTest is released, upgrade by running:
251
-
252
- ```shell
253
- gem install pdqtest
254
- cd /your/project
255
- pdqtest upgrade
256
- pdk bundle install
257
- ```
258
-
259
- This updates:
260
- * Project gems in `Gemfile.project` (currently `pdqtest` and `puppet-strings`)
261
- * Our CI and CLI integrations:
262
- * `Makefile`
263
- * `make.ps1`
264
- * `.travis.yml`
265
- * `bitbucket-pipelines.yml`
266
-
267
- The final `pdk bundle install` command upgrades PDK's bundle to the include our
268
- update and is critical to making the whole process work.
258
+ When PDQTest is upgraded, we update the files above marked ⚡ in your project.
259
+ This doesn't impact PDK at all with the exception that we take over
260
+ `.travis.yml` since the PDK one doesn't do what we want it to.
269
261
 
270
262
  ## What happens when I upgrade PDK?
271
263
  PDK operates independently from PDQTest and maintains its own files. Your free
272
264
  to run `pdk update` to upgrade the your files to the latest PDK templated ones
273
- at any time.
265
+ whenever you like.
274
266
 
275
267
  To protect PDQTest files from alteration (notably `.travis.yml` and
276
- `bitbucket-pipelines.yml`) we merge them with any existing `.sync.yml` to
277
- prevent churn.
268
+ `bitbucket-pipelines.yml`) we merge instructions to have PDK leave them alone
269
+ to `.sync.yml` (merging with any existing rules) to prevent churn.
278
270
 
279
271
  If you have further customisations to PDK controlled files your options are:
280
272
  * Use git to revert any change by PDK
@@ -290,27 +282,21 @@ open a [ticket](https://github.com/declarativesystems/pdqtest/issues)
290
282
 
291
283
  ## How do PDQTest lifecycle tests relate to PDK?
292
284
 
293
- | PDQTest | PDK |
294
- | --- | --- |
295
- | `syntax` | `pdk validate metadata,puppet` |
296
- | `rspec` | `pdk test unit` |
297
- | `build` | `pdk build --force` |
298
-
299
- * Previous `lint` subcommand was removed in PDQTest 2.0 as its now covered by
300
- `syntax`
285
+ | PDQTest | PDK |
286
+ | --- | --- |
287
+ | `logical` | `pdk validate metadata,puppet`, `pdk test unit` |
288
+ | `all` | `pdk validate metadata,puppet`, `pdk test unit`, `pdk build --force` |
289
+ | `fast` | N/A - run `puppet-lint` and `rake syntax` to finish faster |
301
290
 
302
291
  ## What actually happens when I run PDQTest?
303
292
 
304
293
  `bundle exec pdqtest all` is the default target executed by `make` and
305
- `.\make.ps1`. There are a few other targets that let you skip parts of the build
306
- or run individual parts. The complete run looks like this:
294
+ `.\make.ps1`. The complete run looks like this:
307
295
 
308
296
  1. `pdk validate 'metadata,puppet'`
309
297
  2. Install modules listed in the `metadata.json` file using R10K against a
310
298
  temporary `Puppetfile` at `Puppetfile.pdqtest`
311
299
  3. Generate a `.fixtures.yml` file based on `metadata.json`
312
- Currently impacted by
313
- [#47](https://github.com/declarativesystems/pdqtest/issues/47)
314
300
  4. `pdk test unit`
315
301
  5. Run all acceptance tests
316
302
  6. `puppet strings generate --format=markdown` to generate `REFERENCE.md`
@@ -320,15 +306,10 @@ At each stage of the process, we output emoji's to keep you informed of
320
306
  progress. Any failure prevents running the next phase of testing and lint errors
321
307
  are considered failures.
322
308
 
323
- ### Technical details (code)
324
- If anyone knows a better way to do this, I'd love to hear about it:
325
- [PDQTest lifecycle](https://github.com/declarativesystems/pdqtest/blob/master/exe/pdqtest)
326
- [PDK Wrapper](https://github.com/declarativesystems/pdqtest/blob/master/lib/pdqtest/pdk.rb)
327
-
328
309
  ## PDQTest is pretty slow!
329
310
  This is a side effect of having to shell out to run PDK via system calls.
330
- There's really no other way to do this while maintaining full PDK compatiblity
331
- (if you know different, please enlighten me).
311
+ There's really no other way to do this while maintaining full PDK compatibility
312
+ (if you know different, please open a ticket and let me know how).
332
313
 
333
314
  That said you might just want to run syntax and lint tests and acceptance tests
334
315
  as quick as possible, in which case run:
data/doc/puppet_facts.md CHANGED
@@ -11,11 +11,12 @@ consistent set of facts for both RSpec and acceptance testing, in the file that
11
11
  PDK expects them to be in.
12
12
 
13
13
  ## 🐉 Differences from PDK 🐉
14
- The above behaviour is not how PDK intends this file to be used as some other
15
- mechanism is supposed to be used for acceptance tests (see PDK manual).
14
+ The above behaviour is _not_ how PDK intends this file to be used as some other
15
+ mechanism is supposed to be used for acceptance tests.
16
16
 
17
17
  It's pretty rare to actually need `spec/default_facts.yml` unless your doing
18
- unit testing since you can insert custom facts as part of your test setup.
18
+ unit testing since you can insert custom facts as part of your test setup
19
+ script (eg `spec/fixtures/init__setup.sh`).
19
20
 
20
21
  Be aware that PDK sets a few facts to specific values that we will pick up and
21
22
  use in your acceptance tests:
@@ -30,23 +31,3 @@ macaddress: "AA:AA:AA:AA:AA:AA"
30
31
  You would need to use a forked version of the PDK templates to fix these
31
32
  properly, but your using the structured facts anyway so it makes no difference,
32
33
  right...?
33
-
34
- ## Older versions
35
- PDQTest < 2.0 includes built-in
36
- [factsets](https://github.com/declarativesystems/puppet_factset) covering many
37
- common operating systems, however, sometimes additional facts are needed
38
- throughout a module to mock an external fact or custom fact from a different
39
- module that is expected to be some known value. In this case, creating the
40
- directory:
41
-
42
- ```
43
- spec/merge_facts
44
- ```
45
-
46
- Inside the module being tested will result in all JSON files contained being
47
- merged into all OS specific factsets used for testing as generated by
48
- `pdqtest generate_rspec`.
49
-
50
- To put it simply, drop `.json` file(s) in this directory to add them to every
51
- factset. These facts will be made automatically avaialable to facter when
52
- running acceptance testing
@@ -32,16 +32,11 @@ fixtures:
32
32
  ```
33
33
 
34
34
  It is an error to define the same module in both `metadata.json` and
35
- `.fixtures.yml` and the results of doing this are undefined:
35
+ `.fixtures.yml` and the results of doing so are undefined:
36
36
  * Always use `metadata.json` for public forge modules and we will update
37
37
  `.fixtures.yml` based on it
38
38
  * Modules from git should _only_ be defined in `.fixtures.yml`
39
39
 
40
- ## Notes:
41
- * The file format of `.fixtures.yml` and `fixtures.yml` for specifing git
42
- repositories is identical
43
- * Previous versions of pdqtest configured the r10k cache via `.r10k.yaml` which
44
- caused [#44](https://github.com/declarativesystems/pdqtest/issues/44). To fix
45
- this, we now use the default r10k cache dir at `~/.r10k/cache` and don't write
46
- `.r10k.yaml` any more. You should remove any `.r10k.yaml` files from your
47
- project unless you need it for something specific.
40
+ ### pdk build
41
+ Note that running `pdk build` will remove any modules present under
42
+ `/spec/fixtures/modules`. Run unit tests to restore them.
data/doc/running_tests.md CHANGED
@@ -2,8 +2,9 @@
2
2
 
3
3
  ## Important
4
4
  You **must** use the provided launch scripts `Makefile` or `make.ps1` to run
5
- PDQTest, at least for the first time. See [PDK integration](pdk.md) for more
6
- information.
5
+ PDQTest, at least until your familiar with how PDQTest works. This is because
6
+ PDQTest must always be run from the `.pdqtest` directory. See
7
+ [PDK integration](pdk.md) for more information.
7
8
 
8
9
  ## Quickstart
9
10
  If you just want to run all tests:
@@ -18,41 +19,48 @@ make
18
19
  .\make.ps1
19
20
  ```
20
21
 
21
- Alternatively, you can choose to run different groups of tests by supplying a
22
- target from this table:
22
+ ## Make targets
23
+ Alternatively, you can choose to run a `Makefile`/`make.ps1` target by supplying
24
+ an argument from this table:
23
25
 
24
- | Target | Description | PDK compatible? |
25
- | --- | --- | --- |
26
- | all | lint, syntax, rspec, acceptance, strings, build | yes |
27
- | fast | lint, syntax, acceptance, strings, build | no |
28
- | shell | run acceptance tests and print command to get a shell in the container | yes |
29
- | shellnopuppet | open a shell in the test container | yes |
30
- | logical | syntax, lint | yes |
26
+ | Target | Description | PDK compatible? |
27
+ | --- | --- | --- |
28
+ | `all` | metadata, syntax, lint, rspec, acceptance, strings, build | yes |
29
+ | `fast` | syntax, lint, rspec, acceptance, strings | no |
30
+ | `acceptance` | acceptance tests only | - |
31
+ | `shell` | run acceptance tests and print command to get a shell in the container | yes |
32
+ | `setup` | download required docker images for this version of PDQTest | - |
33
+ | `shellnopuppet` | open a shell in the test container | yes |
34
+ | `logical` | metadata, syntax, lint, rspec, docs | yes |
35
+ | `pdqtestbundle` | install gems needed for PDQTest | - |
36
+ | `docs` | generate `REFERENCE.md` using Puppet Strings | - |
37
+ | `Gemfile.local` | symlink/copy `Gemfile.local` from `Gemfile.project` and re-bundle PDK | yes |
38
+ | `pdkbundle` | re-bundle PDK | yes |
39
+ | `clean` | cleanup `/pkg` and `/spec/fixtures/modules` | - |
31
40
 
32
- * PDK compatible means we run the `pdk` command for this part of the lifecycle
41
+ **PDK compatible**
42
+ * yes: we run the `pdk` command for this part of the lifecycle
43
+ * no: we run an alternative command
44
+ * -: There is no corresponding `pdk` command
33
45
 
46
+ **Examples**
34
47
 
35
- **Example**
48
+ Test the module as quickly as possible:
36
49
 
37
- **Linux**
50
+ *Linux*
38
51
  ```shell
39
52
  make fast
40
53
  ```
41
54
 
42
- **Windows**
55
+ *Windows*
43
56
  ```shell
44
57
  .\make.ps1 fast
45
58
  ```
46
59
 
47
- ## Only run acceptance tests
48
- ```shell
49
- bundle exec pdqtest acceptance
50
- ```
51
-
52
60
 
53
61
  ## See also
54
62
 
55
63
  PDQTest help:
56
64
  ```shell
57
- bundle exec pdqtest --help
65
+ cd .pdqtest ; bundle exec pdqtest --help
58
66
  ```
@@ -23,4 +23,14 @@ This will also create examples/mynewthing.pp if you haven't created it yet.
23
23
 
24
24
  ## RSpec tests
25
25
  PDQTest < 2.0 includes rspec test generation. This functionality is replaced by
26
- PDK in later versions.
26
+ PDK in later versions:
27
+
28
+ ```shell
29
+ pdk new class
30
+ ```
31
+
32
+ Generates Puppet classes _and_ RSpec tests
33
+
34
+ ## Other files
35
+ You should investigate PDK for generating more boiler plate code for things like
36
+ types/providers, defined resources, etc.
@@ -1,6 +1,7 @@
1
1
  # Tips and tricks
2
2
  * You can put any puppet code you like (including an empty file...) in each of
3
- the files under `/examples` and it will executed with `puppet apply`
3
+ the files under `/examples` and it will executed with `puppet apply` as long
4
+ as it contains the magic marker `#@PDQTest` or `#@PDQTestWin`
4
5
  * If you need to test multiple different things (eg different parameters for a
5
6
  new type and provider), you need to create a different (acceptance) testcase
6
7
  for each distinct thing to test
@@ -11,14 +12,16 @@
11
12
  * To disable tests temporarily for a specific example, remove the magic marker
12
13
  `#@PDQTest` or `#@PDQTestWin` from the example
13
14
  * Nested examples (subdirectories) are not supported at this time
14
- * Since the all of the `*__setup.sh` scripts are run in the container as root
15
- before executing tests, they can be used to mock _almost anything_ in the
16
- test system:
15
+ * Since all of the `*__setup.sh`/`*__setup.ps1` scripts are run in the container
16
+ as `root`/`Administrator` before executing tests, they can be used to mock
17
+ _almost anything_ in the test system:
17
18
  * Replace system binaries to fake network operations
18
19
  * Add system binaries to simulate other operating systems such as AIX,
19
20
  Solaris, etc
20
21
  * Create/copy files, directories, etc.
21
22
  * Install OS packages
22
23
  * Install python scripts to mock database servers using SQLite... 😉
23
- * Files added by PDQTest >= 2.0 have the magic marker:
24
+ * Files added by PDQTest >= 2.0 that are not originating from PDK are marked:
24
25
  `*File originally created by PDQTest*`
26
+ * See [development](development.md) guide for how to turn on debugging and exit
27
+ stack traces
@@ -5,16 +5,17 @@
5
5
  your in and you are using `rvm` its probably because `rvm` overrides `cd` and
6
6
  does strange things. You can probably turn this off. Alternatively, use
7
7
  `rbenv`
8
- * Don't forget to run `pdqtest setup` before your first `pdqtest` run to
9
- download/update the Docker image
8
+ * Don't forget to run `make setup` or `.\make.ps1 setup` before your first
9
+ PDQTest run to download/update the Docker image
10
10
  * If you need to access private git repositories, make sure to use
11
11
  `.fixtures.yml` not `fixtures.yml` (changed in 2.0.0)
12
12
  * If you need a private key to access private repositories, set this up for your
13
- regular git command/ssh and `pdqtest` will reuse the settings
13
+ regular git command/ssh and PDK should reuse the settings
14
14
  * Be sure to annotate the examples you wish to acceptance test with the magic
15
15
  marker comment `#@PDQTest` or `#@PDQTestWin`
16
- * Be sure to run `make` or `bundle exec pdqtest all` to download dependencies
17
- when running acceptance tests. Previous versions (re)downloaded modules as
18
- required from inside docker but this step has been replaced with a simple
19
- symlink to reduce the amount of downloading so the modules must already be
20
- present.
16
+ * Be sure to run `make` or `.\make.ps1` to download dependencies when running
17
+ acceptance tests. Previous versions (re)downloaded modules as required from
18
+ inside docker but this step has been replaced with a simple symlink to reduce
19
+ the amount of downloading so the modules must already be present.
20
+ * Update to the latest PDK before running PDQTest
21
+ * See the [PDQTest 1.x -> 2.x upgrade notes](upgrade_1_2.md) for other gotchas