►
From YouTube: Pester v5: Unit Testing with Jonathan Moss
Description
Join Jonathan Moss as he demos how to get started with Pester and highlights what’s changed in Pester v5.
Jonathan Moss is a Release Operations Engineer for Mozilla and a long time PowerShell community contributor. Don’t miss this opportunity to learn about unit testing with Pester and why you need to start doing this ASAP.
Follow Jonathan Moss on Twitter: https://twitter.com/jwmoss
Stay updated with the Research Triangle PowerShell User Group:
Website: https://rtpsug.com/
Meetup page: https://www.meetup.com/Research-Triangle-PowerShell-Users-Group/
Twitter: https://twitter.com/rtpsug
A
Hey
everybody
Welcome
to
the
research
final
Powershell
User
Group.
My
name
is
Mike
canakis
and
on
behalf
of
my
co-host,
Phil
Boston
tonight
is
July
20th
2022
and
we
are
happy
to
have
Jonathan
Moss
deal
with
us
tonight.
Currently,
a
release
engineer
for
Mozilla
I'm
going
to
be
talking
about
pester
five
tonight,
so
we're
going
to
turn
it
over
to
Jonathan
who's.
Here
in
person
with
us
tonight,
Jonathan
solios.
B
B
Where
I
talked
about
pester
pester
version
four
and
since
then,
there's
been
a
major
release.
Pastor
version
five.
So
this
talk
is
going
to
go
a
little
bit
into
the
differences
between
tester
version
4
and
then
texture
version
five.
But
what
I
like
to
do
is
kind
of
review.
B
What
I
went
over
a
few
years
ago
and
in
that
same
repository
of
code
and
then
what
I'll
do
is
I'll
show
some
examples
of
Hester,
5
version
of
that
and
then
I'll
break
into
another
repository
to
show
you
just
some
of
the
ways
that
I've
kind
of
reworked
that.
B
Does
have
any
questions
feel
free
to
ask
in
the
chat
I
can't
see
so
y'all.
Just
let
me
know,
there's
a
lot
that
I
could
cover
or
I
could
just
cover
parts
of
it,
but
with
pester,
there's
or
with
testing.
There's
there's
several
types
of
testing.
What
I'll
show
tonight
is
a
form
of
what's
called
unit
testing,
so
I'm
testing
my
conveyance
and
function.
My
custom
Commandment
that
I
created,
but
there's
also
such
things
as
integration
tests
that
can
be
used
with
tester
and
then
other
tests
as
well.
B
So
there's
it's
a
pretty
broad
topic
and
I
have
some
opinions
and
others
have
others.
B
Before
for
the
last
few
years,
and
then
I'll
compare
I'll
talk
about
the
differences
with
pester,
five
and
Pastor
four
and
some
of
the
challenges
that
I
have
are
had
and
kind
of
still
have
just
with
using
it.
One
of
the
main
reasons
I
like
pester,
is
it's
Powershell
at
the
end
of
the
day.
So
if
you
know
Powershell,
you
know
pester.
So
what
I'll
do
here
is
I'll
share
my
screen
and
I'm
hoping
every
guy.
Everybody
can
see.
B
Vs
code,
good,
okay,
so
in
here
on
the
left
side,
I
have
a
repository
of
the
code
that
I
that
talked
about
years
ago,
I'm
going
to
go
through
that
kind
of
Breeze
through
that
and
then
I'm
going
to
talk
about
tester
five.
The
problem
with
with
tests
is
that
they're
annoying
to
write
and
it's
annoying
to
write
them
in
a
way
that
you
don't
have
to
repeat
yourself
often
so.
Pastor
five
enables
some
features
that
allows
you
to
do
things
better,
so
with
pester
just
kind
of
the
Highlight.
That's
really
big.
B
Is
that
still
big
enough
I
think
everybody
want
to
see.
Okay,
cool
I
don't
want
to
make
it
too
massive,
but
so
with
pester
there's,
there's
there's
different,
there's
a
different
way
of
writing
it.
So
you
have
what's
called
a
domain
specific
language
or
DSL,
or
you
have
describe
it
and
context
and
then
with
Pastor
five
there's
before
all
before
each
after
all,
after
each
the
discovery
and
so
on.
So
so
what
I
want
to
show?
You
is
a
function
that
I
wrote
called
get
airport,
and
this
is
what
I
wrote.
B
I
haven't
done
much
with
it,
I
think
I,
don't
think
anything!
Yes,
it's
three
years
ago,
it's
a
simple
function.
B
B
Okay,
no
worries,
so
this
is
my
Powershell
function,
git
airport,
so
if
I
load
it
to
load
in
here,
get
Airport
City
Raleigh
right.
So
there
you
go
and
if
I
do
get
overport,
City
Phoenix.
B
Lookup,
so
you've
got
the
code,
Airlines
name
blah
blah
blah
right.
So
it's
very
simple,
but
it's
data
that
I'm
going
to
show
you
kind
of
how
it
used
to
how
I
used
to
test
against
it
and
then
how
you
can
do
it
now
in
on
the
left
side.
You'll
see,
I
have
files
that
include
the
name
test
in
there.
Those
are
the
Powershell
scripts
that
I
used
that
Pastor
looks
for
to
run
tests
against
and
if
we
start
with
the
number
three
one.
B
This
was
a
pretty
good
test
that
I
had
before
what
you'll
notice
is
that
what
I'm
doing
up
here
is
I'm
dot
sourcing
the
function
so
I'm
loading
it
into
the
session
and
then
I'm
running.
This
describe
block
right
here.
So
what
I'm
doing
here
is
I'm
I'm
testing
to
see,
and
then
it's
it's
kind
of
somewhat
self-explanatory.
B
Hopefully-
and
this
is
faster
version
four
by
the
way,
I
won't
go
into
five
yet,
but
this
is
kind
of
what
I'm
showing
beforehand
so
I
have
basically
give
me
the
Raleigh
airport
code,
so
I
I
run
this
describe
in
the
describe
block.
B
I
have
the
actual,
which
gives
me
the
output
of
that
and
then
I
have
a
bit
block,
which
contains
the
just
a
specific
test
to
test
against
the
the
name
of
the
code
right,
so
I
expect
it
to
be
RDU
and
if
I
go,
if
I
run
this
whole
thing
so
I
had
to
run
it
here.
B
Okay,
probably
because
it
didn't
load,
this
is.
B
Okay,
well,
that's
fun,
probably
because
I
installed
tester
five
and
not
pester
four,
so
my
test
might
fail.
So
that's
fun!
So
I'm
just
going
to
explain
this!
B
A
F
B
Or
probably
the
code
should
be
okay,
it's
nothing
about
it,
so
this
is
broken
right
now.
So
this
is
a
good
example
of
a
broken
test
that
I
need
somehow
fix
and
I
can
fix
it
here,
live
but
I'm
going
to
show
you
yeah
how
I
fixed
it.
That's
right!
B
Outside
of
the
describe
block
like
out
here
needs
to
be
in
another
block.
You
can't
just
put
anything
you
want
outside
of
this,
so
pester
introduced
customer
five
introduced
this
concept
called
the
four
Discovery,
so
it
says
so
what
it
is.
I'm
I'm
just
going
to
actually
show
you
this.
So
this
is
my
new
test
here
and
it's
called
should
be
tested
or
pester
five,
and
what
I'm
going
to
do
is
I'm
going
to.
C
B
B
You'll
you'll
start
to
pick
up
on
on
where,
where
things
go,
but
just
so
that
if
your
code
is
spread
out
at
different
places
with
four,
when
you
go
to
pester
five,
it's
going
to
stream
at
you
and
want
you
to
put
it
in
very
specific
places,
so
I'll
break
down
what
I've
noticed
myself
and
then
I'll
I'll
kind
of
move
on
and
answer
what
I
can
I
will
I
will
say
that
I've
only
been
using
pester
five
for
like
six
months
to
a
year.
B
So
if
I
run
this
right
here,
so
let
me
CD
to
the
tester
five
and
down
here
is
where
I'm
running
my
integrated
terminal
and
I'm
on
a
Mac
running
Powershell
inside
of
my
Mac.
So
just
just
to
give
you
a
context
of
where
I'm
running
this
right.
So
if
I
do
invoke
pastor,
this
should
work
there.
You
go
that
worked.
B
So
what
that
did
is
that
ran
this
described
lock
and
this
before
all
basically
said
before
any
of
these
tests
run,
which
right
now
I
just
have
one
load
this
into
the
session.
So
if
I
didn't
have
this
and
I
wanted
to
do
this
outside
of
here,
it
wouldn't
work
like
you
saw
before
so.
If
I
go
to
the
should
be
test
right
here.
This
screamed
at
me
because
I
didn't
have
that
wrapped
in
a
before
all
or
before
each
block.
B
B
Correct,
yes,
so
before
all
the
tests
that
I
run,
which
is
this
one
because
it
was
just
one
here
load
this
function,
there's
also
something
called
before
each.
So
if
you
want
to
run
a
function
or
something
here
so
run
stuff
here,
then
that
will
be
run
before
each
test
right.
So
if
I
have
let's
say,
I
have
like
five
tests
in
here.
This
is
gonna
run
five
times.
This
is
run
once.
B
Yeah
clearing
a
variable
or
yeah-
that's
a
really
good
example.
There's
a
lot
of
use
cases
for
before
each,
but
for
me,
what
I
mostly
have
done
myself
is
just
use
it
before
all
block
I'll
show
in
the
past
the
other
repo
that
I've
been
working
on
some
new
code
that
I
used
with
a
and
I'll
pass
in
some
external
data
into
that
as
well.
But
this
is
basically
the
biggest
thing
that
I
wanted
to
show
you
the
difference
between
custom,
four
and
five.
B
It
really
wants
you
to
put
your
code
inside
of
a
a
describe
block
before
all
before
each
after
all
after
each
and
the
pester
documentation
is
really
good,
so
check
it
out,
but
I'm
I
learned
by
doing
so.
I
may
not
do
well
in
explaining
it.
You
may
pick
it
up
by
watching
me:
do
the
things
I'm
doing
and
feeling
it
so.
H
B
B
What
you
have
to
do
is,
if
you
go
to
the
pester
site
here,
there
is
a
process
to
install
that.
So
it
depends
on
what
I'm,
where
you're
at
so
right
here.
It.
B
3.4,
yes,
it's
with
Windows,
10
and
2016.,
so
it's
not
really
going
to
work
with
the
with
the
Powershell
partial
kit.
So
the
best
way
to
do
this
is
right
here:
install
module,
tester,
Force
and
there's
also
there's
also
where
you
can
remove
the
built-in
version,
and
then
you
can
actually,
if
you
have
Powershell,
five
or
newer
and
so
on,
and
so
on.
B
How
to
get
pass
her
onto
your
machine,
but
once
you
have
it
onto
your
machine,
it's
going
to
try
to
run
power
or
Pastor
five.
Now
what
some
people
do
is
they
will
actually
not
move
the
code
to
pester
five
they'll
just
keep
it
on
four,
so
you
could
do
what's
called
required
version
so
with
install
module.
B
Could
run
on
Windows
Powershell,
it
could
run
on
Powershell,
so
it
can
run
everywhere
that
Powershell
runs
if
I'm
wrong.
Please
try
to
believe
that's
the
case.
I
haven't
run
tester
on
Ubuntu
or
non-mac
or
non-windows.
So
I
don't
know
if
that's
actually
the
case
or
arm
right.
So
I'd.
Imagine
that
that
is.
B
H
B
B
Is
here
I
think
I
just
put
that
there
before
all
so
remember
before
before
all
of
the
tasks
get
the
you
know,
get
the
custom
function
right,
because
you,
you
have
I've,
had
issues
importing
custom
modules
and
functions
inside
of
pester,
so
what
I
like
to
do
in
a
before
all
block
is
bring
them
into
the
into
the
block
itself.
B
So
this,
obviously
this
git
airport
is
not
a
function
built
into
Powershell,
so
that's
kind
of
the
concept
behind
bringing
it
in
and
then
using
that
every
time
does,
that
does
that
make
sense,
I
went
past
there.
That's
why
I'm
doing
this
here
for
each
is
gonna
before
each
test
is
going
to
run
this
this
command.
So
if
I
look
down
here,
I
have
two
I:
have
two
tests
down
here:
right,
one
where
it
checks
the
code
is
capitalized
RDU
and
I
checked
that
the
phone
number
is
this
phone
number.
B
So
what
I'll
do
here
is
I've
added
some
additional
blocks
this
after
all
and
after
each.
So
if
I
were
to
run
this,
let's
see
what
happens.
B
So
basically,
what
it
did
is
that
was
fantastic.
That's
a
fun
Testament
stack,
so
it
put
there
I
put
it
there
twice,
because
if
we
look
here
after
each
test
run
the
right
host
right
and
then
what
it
says
here,
it
says:
cool
I've,
finished
all
the
tests.
So
here
let
me
bring
that
up
again.
I
finished
all
the
tests
that
I
finished
all
the
tests
runs
after
all
tests
inside
of
this
described
block.
B
B
It
I
just
know
that
they
both
succeeded
right.
So
there's
there's
functionality
that
you
have
to
add
into
you
and
it
gives
you
customization
to
add
into
the
sea
which
test,
succeeded
or
didn't
succeed,
but
in
this
case
I
don't
have
to
worry
about
it
right
and
then
down.
Here
is
the
actual,
the
actual
code
itself.
So
let's
fail
it.
Let's
do
214.
A
C
B
I'll
show
this
in
about
10
minutes,
but
this
is
a
very
simple:
hey
I
expected
this,
but
it
was
that
if
you've
never
used
pasture
before
this
is
what
you
see
when
a
test
fails
in
the
console,
you
can
also
output
the
pester
results
to
different
formats
that
get
ingested
into
GitHub
actions
or
Jenkins
or
whatever
other
CI
tool
that
you
use
so
Pastor,
but
in
this
case
I'm
just
simply
printing
it
to
the
screen.
Give
me
give
me
what
happened.
B
So
with
this
I
like
seeing
the
test
that
succeeded
so
I'm
gonna,
I'm,
gonna
kind
of
go
fast,
I'm
not
gonna,
go
fast,
but
I'm
gonna
go
a
little
bit
crazy
and
show
you
what
what
pastors
introduce
so
pester's
introduced.
What's
called
a
hesteric
configuration,
Hester
configuration
allows
you
to
customize
the.
B
A
A
B
H
H
B
Point
now,
there's
there's
specific
things
that
you
can
do
to
kind
of
customize
that
and
I'll
I'll
talk
about
that
a
little
bit.
So
what
Phil's
saying
is,
if
you
want
to
run
all
these
tests
at
once,
like
there's
a
way
to
do
that,
but
for
sometimes
when
you
want
to
run
a
test,
that's
against
a
specific
describe
block
like
you
want
to
test
that
the
website's
online,
but
not
with
everything
else.
You
can
add
tags
to
your
password.
You
can
add
these
things
that
skip
this
to
give
a
test.
That's
not
working!
B
You
can
say,
skip
things
like
that.
So,
while
you
can
run
all
these
at
once,
then
you
should,
at
the
end
of
the
day,
don't
expect
them
all
to
work
all
of
a
sudden
when
you
have
different
scenarios
that
happen.
This
is
just
me
saying:
hey
I'm,
going
to
do
one.
This
is
my
chronological
order
of
how
I
presented
before,
but
in
that
case
you
can
when
it's
all
these
test
files,
but
I
I,
wouldn't
do
that.
Yet.
H
So
you
could
even
tag
your
test
say
this
is
production,
testing
and
then
digital
test.
So
you
can
have
all
your
production
tests
sitting
in
the
same
folder,
where
all
your
Dev
stuff
or
your
Dev
stuff
is,
and
then
you
run
your
test
sort
over
to
get
it
for
debt
going
okay,
I'm
not
going
to
test
them
when
I'm
ready
to
test
what
production
is,
then
I
can
just
run
those
tests
and
validate
that
they're.
The.
B
Same
you
can,
but
here's
the
problem
with
that.
You
have
multiple
tests
for
multiple
environments
when
you
want
to
have
one
test
work
at
every
environment
each
time.
So
the
only
thing
that
changes
between
your
environment
is
your
data
right.
So
the
concept
around
that
is,
how
do
you
feed
pester
external
data
without
without
having
multiple
tests
per
environment?
You're
not
going
to
have
it's
hard
to
have
a
prod
DOT
test,
dot,
ps4dev.test.ps1
QA.
E
B
I
said
correct:
the
concept
is
the
concept
is
when
the
logic
makes
sense,
but
the
concept
is
you
want
to
keep
everything
as
simple
as
you
can
and
also
pass
in
data.
That's
consistently
that
data.
That's
consistent
within
each
of
your
testing
scenarios
and
for
me,
I'll
I'll,
show
you
how
that
works.
A
little
bit
later,
you
use
an
external
file
or
external
source
to
pass
that
into
your
test
and
run
them
each
time.
So
what
I've
showed
you
so
far
has
really
been
just
running
against
a
single
function.
B
A
Next
question:
yes,
yes,
please!
So
the
next
question
that
person
asks
I'm
going
to
paraphrase
a
little
bit
here
and
it
says
anything
considered
if
I
want
to
run
if
I
want
to
test
Azure
run
books
and
then
it
goes
on
to
say
meaning,
PS
scripts
inside
Azure
automation,
so
I
think
the
question
is
generally
like
how
do
I
do
Pastor
if
I
want
to
do
it
in
azure.
B
As
long
as
you
have
something
that
runs
Powershell
pester
that
you
can
test
so
you're,
it's
not
a
matter
of
whether
it's
an
Azure
automation
or
not.
It's
a
matter
of
we'll
patch
to
run
and
we'll
Powershell
running.
If
they
will
both
run
then
and
you
could
save
at
the
distance
where
then
it'll
work,
so
the
so
the
so
where
you
run
it
from
isn't
as
relevant
as
your
tests
are
and
your
data
where
you
get
your
data
from
right,
so
you
may
be
running
Azure
automation
to
run
your
scripts.
B
A
And
and
so
I
was
chatting
someone
in
a
separate
conversation
and
I,
don't
know
if
this
was
covered
100,
but
so
the
premise
here
is
basically
every
time
your
code
changes
you're
going
to
pump
in
this
external
data
and
tests.
B
A
E
A
Easier
to
make
sure
that
that
code,
those
tests
still
validate
against
your
new
code
that
you're
trying
to
push
to
production.
That's
essentially
the
idea
right,
I,
write,
new
code
and
I
want
to
test
it
before
I
release
it
run
over
and
over
again
and
every
time
I
make
new
code
that
goes,
live
or
about
to
go.
Live
I
want
to
write
tests
again.
Just
so
I
have
a
substantity
to
say,
I
know
all
my
tests
that
design
work.
So
this.
E
B
I
do
my
new
gig
is
work,
we're
deploying
Windows,
10
and
windows
11.,
so
I
wanted
to
deploy
both
of
them
in
the
same
way,
so
I'm
going
to
write
Pastor
test
to
make
sure
an
image
that
I
create
created
for
both
Windows
10
and
Windows
10
arm
and
windows,
11
and
windows.
11
arms
to
four
Images
are
all
consistently
giving
me
the
same.
The
same
data
back
so
as
I'm
doing
that
I'm
going
to
be
writing
tester
tests
against
the
images
itself.
B
So
the
concept
is
those
images
all
contain
different
data,
but
the
test
the
same
test
should
run
seven
Zips
going
to
get
installed
on
every
Windows
10
Windows
11
image
that
we
build
XYZ
binary
is
going
to
get
installed
in
every
test
for
everything
that
we
do.
The
difference
is
going
to
be
the
image
or
the
data
that
gets
thrown
into
there.
Does
that
make
sense
your
test
shouldn't
change?
What
should
change
is
the
data
you
feed
into
it.
E
C
B
B
My
function
again
just
brought
it
over
get
air
for
it,
but
what
I
have
here
is
I
have
a
a
function
called
invoke
integration
test,
so
I
I
hope
this
meme
isn't
like
drawing
the
owl
from
like
two
circles
and
then
like
in
the
next
slide.
It's
like
the
owl
is
done
like
it's
painted
by
the
artists
into
that.
C
I
B
It's
like
hey
here's
this
in
the
boom.
Here's
this
function,
that
wraps
pastor
and
all
a
bunch
of
other
nonsense.
But
what
I
want
to
do
is
kind
of
show
you
what
I've,
what
I've
come
up
with
as
a
wrapper
around
invoking
pester,
because
it's
so
powerful,
though
this
is
something
specific
that
I
like
to
use
in
order
for
me
to
test
tester
without
multiplying
or
making
new
new
tests
and
before
I
go
here,
though,
I'm
actually
gonna
go
into
my
integration
test
themselves
and
you're
going
to
see
some
new
stuff
here.
B
So
this
is
my
test:
integration.test
dot,
PS1
and
I
have
a
param
block
up
here,
which
is
new
right.
So
you
have
the
file.
You
have
a
path
to
script
and
before
Discovery
is
going
to
run
it's
going
to
get
the
date.
It's
going
to
store
the
contents
of
the
file
and
pass
in
here
and
you'll
see
where
this
comes
in
later
and
each
time
it's
going
to
run.
B
Let's
see
here,
one
two
describe
blocks
each
with
a
context
of
that
block
and
each
time
it's
going
to
dot
Source
the
past
of
the
script
right.
It's
going
to
get
the
airport
and
then
what's
going
to
happen,
is
it's
going
to
Loop
through
the
data
that
I
give
it
it
actually
actually
test
to
make
sure
that
the
website
is
online.
So
remember,
my
function
is
just
two
reports
right:
it's
Raleigh
and
it's
Phoenix,
but
Raleigh
and
Phoenix
are
the
same.
B
They
all
have
they
both
have
a
website
right,
so
I'm
not
going
to
write
a
test
that
has
that
hard
codes,
the
city
dot
website
every
time,
I'm
going
to
feed
it
in
something
consistent
right.
So,
if
I
look
at
airport.json,
I
have
the
Json
file
that
has
City
dot,
Raleigh
dot,
Phoenix,
so
I'm
passing
in
this
Json
file
into
git
airport
and
I'm
going
to
pass
it
into
City
and
each
time
it's
going
to
give
me
different
data.
That
I
should
expect
the
same
thing,
so
they
go
back
to
integration.tests.
B
But
my
context
is
going
to
be
this
little
weird
thing
right
here,
all
right,
so
this
is
the
hardest
part
of
pesticide,
in
my
opinion,
so
what
you
would
normally
do
is
you'd
write
it.
You
know
Raleigh,
it
Phoenix
it
whatever
else
right
and
that's
that's
complicated.
That's
so
you
don't
have
to
do
that
because
you're
testing
you're
testing
the
website
every
time
right.
So
what
this
script
does
is
this
takes
in
this
data
file,
dot,
City
and
remember,
dot,
City,
it's
going
to
be
two
values:
Raleigh
and
Phoenix.
B
So
it's
going
to
go
through
data.city
and
this
is
going
to
print
out
Raleigh's
website
as
online
Phoenix
website
online,
it's
gonna
and
it's
going
to
do
what's
called
an
integration
test.
So
this
is
an
integration
test
where
this
is
a
this
is
this
is
technically
doing
several
things
loading,
my
my
function,
get
airport
with
City
dollar
underscore
and
dollar
underscore
is
just
the
value
of
what
I
gave
it,
which
is
probably
in
Phoenix
all
right.
So
what
this
is
going
to
do?
D
B
Customize
this,
however,
I
want
to
I'm
just
using
a
parameter
just
to
show
you
I
could
hard
code
this
and
say
here.
It
is
right
here,
but
then
I'm
going
to
do
this.
I'm
gonna
I'm
gonna
Loop
through
each
of
the
two
cities
as
well
and
I'm,
going
to
make
sure
they
only
have
three
characters
so
I'm
going
to
get
the
code
from
the
get
airport
city
so
RDU
or
PHX
and.
B
Object
which
is
built
into
Powershell,
to
get
the
amount
of
characters
it
has,
and
it
should
be
three.
So
these
are
technically
I.
Just
wrote:
eight
tests
in
30
40
lines
of
code
and
not
only
did
I
write
those
tests,
I
wrote
it
once
so.
I
can
I
can
customize
my
function
to
support
additional
cities
and
just
run
just
feed
tester
multiple
cities
without
modifying
my
code.
B
B
So
there
you
go
tester
five
supports
running
test
files
and
script
blocks
using
input.
So
what
this
does
is
you
can
run
the
container,
give
it
the
test
file
and
then
give
it
the
file
get
emoji.ps
one.
This
is
kind
of
a
bad
example,
but
here's
another
thing
all
right
so
pass
in
a
script
clock
to
do
this.
This
it
gets.
B
It
gets
crazy,
but
this
is
but
the
container
Facebook
allows
you
to
feed
in
external
data
into
the
test
without
you
having
to
rewrite
the
test
over
and
over
so
there's
a
container
and
then
there's
config
so
go
back
to
here.
This
is
basically
wanted
to
walk
through.
So
this
is
this.
Is
my
test
right
for
Discovery
two
describe
blocks
and
that's
it
so
so
can
we
pause
there?
A.
H
So
looking
directly
at
that
code-
and
one
of
the
points
is
like
this-
is
the
real
crazy
thing:
when
the
you
know
open
Arrow,
you
know
underscore
lowercase
Arrow,
but
that
is
am
I
am
I
correct
in
coming
back
to
that
is
the
dollar
underscore
of
pester
size
and
so
and
then
right
behind
it
is
that
for
each
where
you
know
so
that
is
the
array
that
you're
going
to
pass
over
right.
So
it
could
be
a
whole
other
thing.
So
it
is
exactly
what
that
is,
and
so.
H
A
bunch
of
stuff,
too,
are
you
saying
two:
is
that
I
could
move
through?
Just
even
you
know
that
data
and
then
I
could
then
pull
out
the
city
and
all
that
kind
of
stuff.
It
was
if
the
input
data
is
a
bigger
concept
today,
yeah
so
kind
of
that
point
it
affects.
Is
that
object
right
is.
It
is
directing
that
assumption.
So
so,
like
you
said,
with
the
container,
it
was
containerizing.
H
B
For
you
yeah,
this
is
a
very
simple
also
the
4H
is
is
the
powerful.
This
was
I
think
this
is
a
replacement
for
test.
B
Suite
I
forget
what
the
parameter
name
was
with
test
before,
but
this
right
here,
I'm
telling
you
guys
this
was
the
hardest
for
me
to
wrap
my
head
around
like
like
how
do
I
grab
individual
or
objects
or
strings
or
hash
tables
and
pass
them
into
a
test
within
a
single
describe
block
with
one
really
one
test:
have
it
worked
over
and
over
and
over
and
over
and
over,
and
this
is
it-
this
is
how
you
do
it.
This
is
the
way
that
I've
found
to
do.
H
It
so
effectively
going
back
to
that
idea
of
Dead
versus
fraud
and
stuff
like
that,
and
so
the
the
the
pester
test
itself,
this
entire
using
the
same
test
and
then
the
input
that
you
file
that
you
give
it
is
your
Dev
environment
data
versus
your
broad
environment
thing.
So,
hey
here's,
a
bunch
of
server
names
at
that
point,
that
was
all
your
Dev
service.
Here's
all
your
product
server
names
and
go
from
there,
but
then
even
it
can
be
this
crazy,
Json
object
that
has
here's
your
Dev
servers
with
the
dev
SQL
bosses.
H
That
said
single
tables
and
here's
the
you
know
the
shares
that
we
need
to
match
and
then
repeat
the
same
thing
and
I
know
exactly
what
prod
is
I
know
exactly
what
Dev
is
and
it's
you're
testing
the
back
correct.
Yes,
just
knowing
that
well
we're
guaranteeing
that
that
you're
you're
not
changing
anything
from
one
command,
correct.
B
A
A
H
B
Know,
yeah
I'm
just
showing
you
a
static
file
that
I
grabbed
and
just
pre-configured
to
include
the
two
things
here,
but
this
is
only
something
that's
status
that
I
created
on
purpose
for
this
function,
it's
hyper
simple,
but
you
can
take
in
data
from
external
locations
like
I'm
doing
here.
Let's
say
you
have
a:
they
have
a
resting
point
that
has
your
cmdb
that
contains
all
of
your
servers
with
all
of
your
environments.
B
With
all
of
your
applications
installed,
you
can
I
mean
you
can
run
this
here,
grab
that
data
and
then
Loop
through
it
as
I'm
doing
here
right,
you
don't
have
to
hard
code
it
to
look
for
a
specific
file
like
I.
Have
you
can
bring
it
in
dynamically
this
way-
and
this
is
this-
is
just
this
is
Powershell.
This
is
not
anything
more
than
Powershell
woodcaster.
B
The
biggest
thing,
though
again
the
biggest
thing
that
I
did
not
figure
out
and
just
really
had
a
hard
time
with.
Is
this
looping
this
for
each
block
right
here,
the
4-H
block
and
the
before
Discovery
and
the
before
all
the
after
all
and
all
that
stuff
I,
probably
can
do
it
better
here,
like
I,
don't
know
if
I
can
do
this
path
to
script
and
have
it
worked
with
both
subscribe
blocks,
but
I
just
left
it
with
that.
B
H
The
fact
that
it's
in
the
describe
now
so
you
can
kind
of
see
it's
outside
of
those
early
braces
so
in
the
the
it's
in
the
description
of
the
block
itself.
So
that's
where
you
would
use
the
dollar
underscore,
but
it's
not
visible
out
of
that
scope.
So,
whatever
I
don't
open,
Arrow
close
Arrow
underscore.
B
Sorry,
data
different
traps
do
that
data
driven
tests
is,
is
what
I
was
kind
of
getting
on.
That's
the
really
key
thing
here:
right
yeah.
This
can
range
from
probably
multiple
samples
or
a
single
on
a
single
it
all
right,
external
configuration
file,
4-H
test
cases
right.
So
this
is
it's
wild
stuff
like
this
once
I
once
it
once
I
got
it.
I
was
like.
Oh,
that
makes
sense
again.
The
documentation
I
mean
spend
time
here.
That
is
worth
it,
especially
if
you
haven't
used
pester.
Four
like
this
is
great.
B
This
is
going
to
be
a
lot.
I,
wouldn't
say
a
lot
easier,
but
it's
not
gonna.
Give
you
a
little
bit
of
a
headache
as
it
was
and
again
I
mean
other
folks
that
contributed
did
a
great
job.
It's
just
for
me.
I
had
a
really
hard
time
breaking
the
concept
around.
What
I
should
do
with
tester
four
versus
tester
five,
but
the
thing
that
made
it
did
it
for
me
is
the
data
driven
test
in
writing.
B
B
Actually,
I'm
going
to
take
this
I'm
gonna
do
something
even
cooler,
because
it's
going
to
fail
hard
if
I
run
I
just
didn't
vote
pester
against
this.
It's
going
to
be
like
no,
it's
not
gonna
work
because
I'm
patching
an
external
data
right
here
right.
So
this
is
where
this
is.
Where
things
get
interesting
and
what
I
did
is
I
made
a
wrapper
around
Hester
and
I,
just
called
it
a
book
integration
test
and.
C
B
It
several
so
again,
this
is
again
it's
just
a
Powershell
function
that
I
made
and.
C
B
Around
a
few
pesto
features
for
five
in
my
scenario:
I
passed
in
a
test,
Suite
website
or
code.
If
I
don't
pass
a
test
Suite
in
because
remember.
G
B
Code,
okay,
I,
don't
pass
in
a
test;
Suite
just
run
the
whole
thing.
My
file
is
my
file.
My
file
right,
so
passing
in
my
external
file
for
data
been
in
my
tests
are
where
my
tests
live.
Like
hey
run
it
here
and
then
my
I
have
a
switch
that
says
CI,
which
guy
will
output
this
the
test
to
an
XML
file
that
can
get
ingested
into
GitHub
actions,
Jenkins
and
so
on,
gives
you
pretty
graphs
all
right.
So
wow,
it's
crazy!
So
please
and
please
ask
questions,
because
this
took
a
long
time
for.
B
Doesn't
know
about
external
data
unless
you
tell
it
hey,
I'm,
giving
you
external
data
that
external
data
is
what's
called
a
pester
container.
The
pastor
container
says:
okay,
here's
some
of
the
story
of
this
container.
It's
a
new
password
container,
okay,
where's!
Your
pass!
It's
right
here,
all
right!
What's
your
data!
What
are
you
passing
into
the
container,
which
is
another
word
for
data
driven
test
they're
going
to
get
it
well,
I'm,
going
to
pass
it
in
a
hash
table
a
file
to
file
now
file
right
here?
This
is
this:
is
this
all
right?
H
B
Right
so
containers
here
we
go
store.
This
container,
then
I'm
going
to
build
a
config
file
for
passenger,
so
there's
a
password
configuration.
This
is
also
very
new
with
pasture,
because
you
want
to
do
a
lot.
You
can
do
a
lot
of
things,
but
again
this
is
external
data.
This
is
just
store
that
can
store
store
the
the
data
in
a
config
variable-
and
this
says
okay,
if
I
pass
in
a
test,
Suite
right
here,
website
or
code,
then
I
want
you
to
build.
My
config
file
to
config
filter
tag,
equals
test.
B
B
These
will
give
you
configuration
options
that
allow
you
to
pass
in
additional
data.
It'll
give
you
the
verbosity.
Remember:
I
talked
about
earlier
how,
if
I
run
eight
tests,
it's
only
going
to
show
me
hey.
You
have
a
test,
that's
defeated!
Well,
you
may
want
to
have
multiple
tests.
Show
you
so
you
could.
You
can
give
it
different
verbal,
so
you
can
pass
through
to
another
object
you
can
skip.
You
can
do
all
kind
of
stuff
within
a
configuration
right.
So
this
is
a.
B
This
is
a
more
advanced
use
of
tester
but
I'm
using
that
here,
because
again,
if
I
want
to
run
my
integration
test,
but
only
against
the
website
portion
of
my
tests,
then
I
can
just
run
this
function
with
test
Suite
website
and
it's
going
to
connect
here
now.
If
I
don't
put
that
it's
just
going
to
skip
all
right,
so
the
test
Suite
there,
nothing!
Okay!
If
the
eye
is
there
then
I
want
you.
C
B
B
B
So
book
integration
test
test
Suite
now
again
this
function
right
here.
This
is
a
custom
function.
I
wrote
that
gives
me
the
ability
to
identify
a
test,
Suite
bring
in
an
external
file
test
and
so
on.
So
I
basically
was
like.
Okay
just
run
my
test
Suite
website,
my
code
for
my
function,
git
Dash,
Airport
and.
B
It
did
it
said:
okay
I
found
four
tests
that
filtered
on
tag
set
to
website,
and
it
did
that
because
I
gave
it
config.filter.tag
equals
test
suite
and
test.
Suite
was
up
here,
which
was
up
here,
so
it
gave
me.
It
only
ran,
describe
blocked,
website
and
look
at
this
for
all
these
websites
online
and
it's
website
online,
and
it
gave
me
all
the
information
because
I
told
it
at
the
very
end.
Okay,
give
me
the
detailed
output
of
each
test
and
not
just
hey
users.
B
A
B
That's
good,
that's
a
good
point.
Mike
I
actually
ran
two
types
of
tests
here.
I
did
one
test
that
is,
integration
tests,
so
I
said,
go
somewhere
else
outside
of
the
code.
To
give
me
the
result
that
I
expect
the
website
just
do
a
page
or
a
book
rest
call,
and
then
I
did
a
test
that
actually
checks
the
code
internally.
I
don't
need
internet
to
run
the
bottom
half
an
internet
to
run
this.
This
is
Generation
testing.
This
is
unit
testing.
A
A
B
Yeah,
so
what
I
tried
to
do
is
run
some
tests
on
my
back.
That
was
pretty
wild
I,
don't
have
it
working
yet,
but
I
can
also
show
you
how
I'm
working
on
it,
but
essentially
I
was
trying
to
do
the
same
thing
where
I
was
trying
to
get
I
have
Homebrew
and
Homebrew
is
a
package
repository
for
Mac
OS
that
runs
and
I
have
different
wild
things
here
that
I
tried
to
recreate
because
honestly
I
wrote
this
test
these,
these
I
wrote
these
tests
and
I
was
like
wow.
B
This
is
crazy,
I
didn't
I,
don't
believe.
I
can't
believe
this
works,
but
I'm
going
to
save
this
for
later,
because
I
need
to
keep
this
in
mind
with
running
multiple
tests
or
multiple
data
files
and
external
resources
and
servers
with
single
test
here
so
yeah.
That's
it.
That's
all.
I
really
have.
If
there's
questions
I
mean
feel
free
to
ask
yeah
go
ahead.
G
So
back
when
python
made
a
breaking
change,
when
they
changed
channels,
strings
behaved
between
single
and
double
quotes.
They
actually
had
a
module
or
sub
module
to
run
against
your
code
and
kind
of
translate.
Some
of
that
password.
Five
provide
that
with
the
like
the
where
they
expected
the
blocks
differently.
B
I
do
not
know,
but
it
would
be.
Would
it
be
something
what
Pia
script
analyzer
would
be
able
to
configure
or
figure
out?
Probably
because,
if
you're
looking
at
the
data
inside
of
that,
that
sounds
like
a
custom,
pure
script,
analyzer
rule
the
syntax,
don't
yeah.
E
B
I
B
Yeah,
just
if
Powershell
supports
it,
then
you
can
test
it.
H
D
Then
you
can
do
you
could
do
and
then
it
was.
E
B
H
B
I
Your
two
upper
is
isn't
on
the
code.
You're
too,
your
two
upper
is
is
on
the
dollar
underscore.
D
H
D
B
B
H
A
H
B
B
I
And
and
you'd
want
to
change
the
name
of
that
particular
test
to
uppercase.
B
B
B
Where
questions
reports
test
for
the
output
yeah
there
you
go
I,
don't
know
how
this
works,
though,
because
this
is
a
new
feature
5.3.
So
if
you're
running
your
code
in
Azure,
devops
or
GitHub
actions,
then
it
will
read
that
it's
somehow
in
there
we
go.
It
reads
that
you're
very
environment
variables
for
Azure
devops
and
then,
if
you
get
up
action
that
reads
test
or
reads
your
environment
variables,
quantitative
actions
and
then
it
will
output
that
to.
B
B
B
Yeah,
it's
insane
how
many
custom
options
there
are
here,
but
again
the
docs
are
really
great
for
how
you
want
to
how
you
want
to
understand
how
this
works.
B
B
Yeah
any
other
any
other
questions,
sir.
It's
use
case
I'll
just
added
what
what's
this
well.
E
B
H
H
B
You
know
what
I'm
saying
I
do
I
think
I
have
in
my
old
code,
something
where
I'll
tell
you.
H
I'm
gonna
call
out
Clinton,
you
know
you'd
mentioned
in
chat
there.
Glenn
about
you
know
using
it
to
validate
desire
to
take
configuration
to
ensure
you
know.
F
J
We
have
what
I'll
call
infrastructure
Suite
of
tests,
and
one
of
the
things
that
is
mandatory
within
our
compliance.
Security
hardening
is
ensuring
that
the
route
the
default
root
account
on
say.
A
given
Appliance
is
disabled
right
and
but
we
have
admins
that
periodically
need
to
break
glass
and
use
that
root
account
to
do
troubleshooting,
debugging,
restarting
of
something
and
periodically.
They
would
forget
to
go
back
and
redisable
the
account.
J
So
we
created
a
series
of
pester
tests
that
run
through
like
a
baseline,
hardening
compliance
Tech.
Is
this
account
disabled?
Is
the
password
length
still
19
characters?
Are
we
using
uppercase?
Are
we
doing
three
lowered
case?
What's
our
password
policy?
Look
like
for
IIs,
you
know
similar
thing.
J
You
know
we
wrote
a
hardening
document
that
that
installs
IIs
using
Powershell
well,
because
Powershell
is
great.
The
Powershell
doesn't
really
it's
not
item
potent,
so
it's
not
going
to
guarantee
your
results
unless
you
check
them
yourself,
so
we
use
tester
to
help
with
some
of
that
item
potency
check
to
make
sure
that
what
we
think
we
have
just
set
using
Powershell
actually
got
set
by
going
out
doing
whatever
it
is.
We
need
to
do
on
a
box
and
then
running
a
pester
test
that
goes
out,
queries
that
box
Compares.
B
B
That's
a
famous
use
case
of
integration
test
because
I've
done
this
in
the
past
and
created
fpn
well,
every
VM
had
to
have
16
different
agents
and
in
a
specific
sub
that
blah
blah
blah
he's
using
it
with
DST.
You
can
use
it
with
a
new
new
ad
user.
I
mean
there's
just
so
many
use
cases
that,
while,
while
beneficial
that
I
don't
think
a
lot
of
people
are
really
understanding.
This
use
case
because
it's.
B
To
run
it
and
say,
oh,
it
succeeded
like
put
a
try,
catch,
okay,
cool
move
on.
It's
actually
valid
that
it's
actually
done
at
the
very
end
like
test
Dash,
a
user
exists,
power
of
Pastor
gets
you
thinking
about
how
to
test
code
or
test
something
that
should
be
declarative
and
make
sure
it
is
right
whether
it's
a
tool
like
you
know,
tangible
terraform.
All
these
all
these
things
I
mean
you
could
layer
this.
On
top
of
that
and
even
Pia
Summit
2020,
there's
there's
a
talk
that
Chris.
B
What's
his
name
is
stack,
Overflow
talked
about,
they
use,
they
use
pasture
Powershell
and
terraform
to
spin
up
and
tear
down
Azure
environments
and
then
I'm,
showing
on
the
screen
a
very
semi
popular.
So
everybody,
a
lot
of
people
might
know
about
PBA
tools,
which
is
a
very
popular
module
for
SQL
Administration,
there's
another
function
or
there's
a
module
called
dbhx
which
basically
used
as
pester
to
confirm
and
validate
that
sql's
configured
as
it
should
with
best
practice.
B
So
there's
a
lot
of
there's
a
lot
of
popular
use.
Cases
for
this
I
think
some
of
them
are
moving
to
Powershell
five.
So
that's
some
of
the
challenges.
All
the
tests
are
probably
written
in
Hester,
sorry,
Pastor,
five,
so
the
tests
have
you
written
the
test
before
I'm,
just
showing
you
this.
To
give
you
an
example
of
the
usefulness
of
a
tool
like
like
pester,
which
is
just
Powershell
and
your
ability
to
do
whatever
you
want
with
it.
J
J
I
have
basically
the
same
test,
but
I
will
have
two
context
blocks
inside
of
that
test.
One
will
be
tagged
as
version
15..
The
next
will
be
tagged
as
version
16.
and
nothing
more
will
change,
but
the
expected
output
right.
So,
if
I'm
looking
for
like
an
ISO
image
value
of
an
ec2
instance
that
we're
using
in
AWS
and
I
know
it's
supposed
to
be,
you
know
one
two,
three
four
on
my
Dev
environment,
but
it's
supposed
to
be
five.
J
Six
seven
on
my
prod
I
can
have
one
one
test
file
with
two
different
context
items
inside
of
it
doing
essentially
the
same
thing,
but
looking
for
just
a
slightly
different
value
and
then
tag
them,
and
then
the
pester
configuration
that
he
was
showing
before
I
could
just
use
like
an
include
tag
to
say:
I
only
want
to
test
for
version.
14,
when
I
run
this
set
of
tests
and
now
I
only
want
to
test
for
version,
15
and
I
can
get
a
better
idea
of.
You
know
how
out
of
compliance?
B
That's
great
there's
so
many
use
cases
for
it
I
mean
there's
I
can
put
this
some
of
the
links
that
I
found
in
my
research,
but
I
mean
here's
a
Blog
of
someone
running
tests
against
VMS
and
Azure
SQL
databases
and
Azure
using
faster
right,
and
it's
just
a
bunch
of
just
a
bunch
of
outside
of
faster
I
mean
it's
just
it's
just
wild.
How
much
you
can
do
here.
A
A
You're
well
I'm,
just
thinking
like
you
know,
Jermaine
is
sitting
here
next
to
me
and
I'm,
not
picking
up
an
example
to
me.
It's
like
wow.
This
is
great.
B
D
G
H
Yeah
or
even
to
your
example
of
like
before
in
case,
somebody
gives
you
some
validation
of
data.
Like
hey,
you
know
we
talked
recently
like
hey
I
can
write,
I
know
how,
to
you
know,
import
a
CS
in
a
CSV
or
Excel
document
and
I
know
hey
how
to
grab
the
value
from
you
know,
column,
one
because
hey
make
sure
that
column,
one
doesn't
exceed
12
characters
or
some
other
validation
like
hey,
make
sure
that
everybody
in
this
file
does
it
isn't
any
kind
of
thing
like
that
The
Testament,
you.
A
J
Those
are
two
very
you
know:
Common
audit
security
guidance,
sort
of
things
that
we
get
asked
about
right,
so
just
create
going
out
finding
the
CIS
Parts
mark
for
a
thing
whether
it's
Palo
Alto,
whether
it's
a
Linux
box,
whether
it's
a
Windows
Server,
whether
you
know
and
then
breaking
that
down
into
smaller
categories,
like
you
know,
specifically
active
directory
or
Windows
IES,
and
then
taking
those
subcategories
and
saying
okay,
now
I'm
just
going
to
write
a
simple
test
that
says
I'm
going
to
compare
what
is
expected
in
the
security
hardening
guideline
with
what
we
currently
have
on
our
machine,
you
know
is
our
SSH
security,
where
we
expect
it
to
be
right,
or
do
we
have
a
back
door
that
can
be
exploited.
J
Ssl
Searcher
or
another
one
yeah,
any
of
those
types
of
things
and
another
like
common
troubleshooting,
you
know
dealing
with
like
web
hosting
or
development
teams
will
always
say.
Well,
it's
not
our
code.
It's
the
server
and
it's
got
to
be.
One
server
is
different
than
the
other.
Well,
okay,
I'm,
going
to
run
the
same
test
against
both
servers
and
I
should
get
the
same.
50
results
back
that
match
on
both
sides
and
now
I,
throw
it
back
to
the
development
group
and
say
nope.
My
boxes
are
identical.
H
So
another
question
that
Tim
actually
asked
in
in
chato
is
that
do
you
have
any
examples,
just
in
your
demo
as
far
as
mocking
doing
it.
E
H
B
Yeah,
so
I'm
not
good
at
mocking,
but
the
concept
is
how
do
I
take
a
existing
function
and
output,
something
very
specific
that
it
wouldn't
normally
output
and
test
that
it
actually
works.
Thank
you.
H
Well,
I
think
it's
good
example
in
the
idea
of
mocking
is
the
idea
where
I
first
saw
it
was
hey.
I
want
to
validate
that
that
an
AP
user
is
kind
of
stuff,
so
inside
your
it
block
is
get
80
user
blah
blah
blah
is
the
current,
but
there's
no
way
to
validate
that
on
the
Fly.
You
know
in
a
real
test
if
you're
not
giving
it
real
data,
so
you
could.
H
B
Yeah,
locking
is
a
whole
section
that
I
personally
have
not
done
before,
but
again
Jacob
has
a
really
brief
article
or
piece
on
that,
but
no
I,
don't
I
do
not
know
the
answer
to
that
question.
C
B
Want
to
tell
you
something
wrong,
I
just
say:
let's
go
here
and
check
it
out.
H
The
question
is
Glenn.
The
question
was.
J
J
What
I
have
done
is
I
have
defined
a
credential
in
my
invoke
script
as
a
parameter
and
I
feed
that
into
the
pester
container,
which
is
part
of
the
pester
configuration,
and
then
that
gets
passed
over
to
the
test
files
and
when
I,
when
I
in
my
case,
I'm
doing
an
invoke
rest
method
within
the
the
external
test
itself
and
I
can
just
pass
the
credential
PS
credential
object,
then
to
my
test
in
the
before
all
section
of
the
test,
which
then
allows
me
to
authenticate
to
the
rest,
API
that
I'm
that
I'm
doing
my
test
against.
J
Credential
object,
however,
you
want
right,
you
can
you
can
pull
it
from
Secrets
management.
You
could
use
an
environment
which
I
don't
recommend
as
your
Azure
management.
You
could
create
that
as
a
as
an
input
on
your
CLI
Command
right
when
you
do
invoke
tester,
Dash
credential
and
then
give
it
your
credential
there's,
you
know
any
numerous
way
of
doing
it.
It's
really
more
about.
You
know
how
do
I
pass
that
PS
Prudential
to
my
test,
so
that
I
can
then
use
it
in
that
test
to
do
the
Authentication.
J
You
know
against
the
devices
and-
and
you
can
also
Loop
through
multiple
devices-
that
way
it
works
fairly.
Well,.
B
Depending
on
where
you
run
your
code,
your
CI
tool
might
have
a
integrated
way
to
inject
a
secret
into
your
test
as
it's
running
too
so.
I
just
looked
up,
github's
version
of
how
to
use,
say,
environment
secret
well,
not
recommended
to
use
it
as
an
environment
variable.
There
is
a
way
to
do
it
within
different
CI
tools
that
they
suggest
and
use.
But
again,
that's
my
world's
final
there's,
a
lot
of
different
there's,
also
a
lot
of
different
opinions
on
that.
But
Clem
has
a
great
Point.
B
B
J
H
A
H
J
All
right,
I
I,
can
you
know
I'm.
You
know
certainly
throw
a
couple
of
examples
of
what
I
do
out
in
GitHub
to
show
people
how
I
create
a
container
in
a
configuration.
If,
if
there
are
folks
in
the
chat
that
have
specific
questions
about
you
know,
how
do
I
do
this
dial
me
and
send
an
email
over,
because
those
are
the
puzzles
that
I
I
tend
to
do
in
the
after
hours
just
for
fun
right
so.
B
H
It
we
want
to
put
you
on
the
camera
yeah,
you
know
so,
and
with
that
you
know.
If
anybody
has
any
other
direct
questions,
you
know
can't
wrap
this
up,
and
you
know
we,
you
know
occupy
a
bunch
of
people's
time
and
any
other
last
minute
questions
from
Jonathan
before
we
leave
and
say
thank
you
for
the
night
and
great
job.
J
On
your
on
your
output,
Jonathan,
do
you
do
you
I
think
you
had
mentioned
once
before
about
creating
reports.
B
Shouldn't
want
to
talk
about
creating
reports.
Are
you
referring
to
the
CI
output,
the
unit
XML
junit,
that
type
of
formatting
right.
B
B
B
J
I'm
not
today,
and
that's
what
I'm
saying
like,
and
maybe
that
would
be
a
presentation
point
about
how
do
I
learn
how
to
do
that
I
today.
It's
all!
It's
all
canned
reports,
it's
literally
all
just
ad
hoc
stuff.
B
That
I
remember
using
Indian
x
in
unit
output
for
Jenkins
to
adjust
and
that's
the
only
extent
that
I've
done
I
remember
looking
Googling
about
what
you
refer
to,
but
it's
been
so
long
I,
don't
recall
what
he's
asking
is
when
those
so
that
airport.xml
file
that
I
have
open.
B
How
do
I
present
that,
in
a
way
that
is,
makes
this
pretty
like
a
graph
and
chart
and
stuff
like
that
and
there's
different
there's
different
tools
and
CI
tools:
that'll!
Do
it
for
you
and
there's
different
formats.
They'll!
Do
it
for
you!
A
Yeah,
thank
you
so
much
all
right.
So,
first
of
all,
I
want
to
say
thank
you
to
Jonathan
Moss
for
presenting
tonight
excellent
job
as
always
Jonathan.
Thank
you
so
much
if
you've
made
it
this
far
into
the
presentation.
We
thank
you
for
sticking
with
us
to
the
end.
If
you're
watching
this
at
home,
please
check
out
our
other
videos
that
are
on
our
YouTube
channel,
we'll
present
some
choices.
Some
suggestions
to
you
at
the
end
of
this
video
check
them
out.
We
have
over
110
videos
on
the
YouTube
channel
of
various
content.
A
If
you're
looking
for
something
related
to
Powershell,
it's
chances
are
it's
on
our
Channel
and
we'd
love
it.
If
you
can
check
it
out
and
if
you
like
what
you
see
like
those
videos,
maybe
even
subscribe
to
our
channel,
so
we
can
send
you
more
content
in
the
future.
So
thank
you
so
much.
We
hope
everybody
enjoyed
it
tonight
and
we'll
see
you
next
time.