►
From YouTube: S302 - Cross-Platform Unit Testing and Code Coverage with Coverlet - Toni Solarin-Sodara
Description
Unit testing is a starting point for continuous integration and ensuring software quality. Just how well are you unit testing? Coverlet is an open source project that measures how much of your code is covered by your test suites for your .NET Core projects. Join project lead Toni Solarin-Sodara for this session to learn more about Coverlet and testing your applications.
A
All
right,
thank
you
very
much,
hey
everyone,
I'm,
so
glad
to
be
here
shout
out
to
everyone
all
over
the
world
who's
watching
this
I
was
able
to
make
it
so
my
name
is
Tony
Tony,
Shania,
shudder
and
I'm,
a
software
engineer
based
out
of
Vegas
Nigeria
I'm,
also
a
Microsoft
MVP
for
developer
technologies
and
I
enjoy
working
on
and
contributing
to
open
source
software.
So
today,
I'm
going
to
be
showcasing
one
of
my
projects
that
was
both
challenging
and
pleasant
to
build,
and
it's
also
received
a
considerable
amount
of
community
optic.
A
It's
called
coverlet
and
it's
it's
not
the
first
to
see
what's
outside,
so
it's
kind
of
the
most
used
cross-platform
code
coverage
tool
for
the
neck
or
so
before,
I
go.
This
is
gonna,
be
demo
heavy
presentation,
but
before
I
jump
over
to
my
chanell
school
and
terminals
and
stuff
I'm,
just
gonna
give
out
a
bit
to
explain,
cover
that
and
how
it
works
so
over
to
the
next
slide.
So
typically,
the
standard
we
could
coverage
to
work
in
the.net
framework
was
that
they
made
use
of
the
profiling
api's.
A
However,
in
the
leds
of
black
hole-
and
I
think
at
this
point-
it's
still-
the
profiling
api's-
are
not
yet
fully
fleshed
out
and
they're
out
with
the
full
framework.
As
a
result,
the
popular
tools
like
open
cover
cover
that
were
used
to
using
on
Windows
with
the
full
framework
have
not
been
ported
over
to
the
neck
to
work
with
the
neck
hole.
So
I
decided
to
fix
to
come
up
with
a
solution
that
bypassed
the
profiling
API
all
together.
So
how
cover
that
works
is
basically
its
recognizes.
A
Your
unit
test
assembly
picks
up
the
dependencies
from
your
test
assembly.
Then
Kavala
injects
instrumentation
could
within
those
dependencies,
because
naturally,
if
you're
right
and
if
you
have
a
test
assembly
for
the
main
project
that
needs
to
pick
up
the
main
project
so
in
it
takes
that
main
project,
it's
in
inserts
inject
cementation
code
and
then
it
goes
I
had
to
run
the
test.
A
So
all
the
tests
are
running
the
injector
could
within
that
said,
these
are
constantly
recording,
could
cuts
that
were
heats
to
temporary
file
and
then
once
tests
are
complete,
coverlet
takes
up
from.
There
calculates
the
coverage,
and
once
it's
done
with
that,
it
restores
all
dependencies
back
to
the
original
form.
So
you
do
not
have
to
do
any
manual
cleanup
yourself.
All
these
processes,
of
course,
will
be
transparent
to
the
user.
A
They
do
not
need
to
interact
with
them
and
from
the
user
point
of
view,
all
you
have
to
do
is
run
a
command
and
view
your
results.
So
I'm
going
to
jump
right
over
to
demo
now,
so
you
can
see
combat
in
action
so
over
here
we
have
typical
donor
constant.
We
shall
we
have
the
asset
and
file.
We
have
the
source
program,
which
is
where
our
code
lives,
and
they
of
course,
have
the
unit
test.
A
The
unit
test
project,
so
I
just
show
something
really
easy
and
simple
that
can
we
can
all
understand
real
quick,
so
we
I
created
a
simple
math
class
at
country
for
different
methods.
So
we
have
the
add
method.
They
have
a
subtract
method,
we
have
a
notification
and
we
have
the
feature.
So
simple,
pretty
straightforward,
add
add
subtract.
Subtract
multiply,
you
know,
and
it
goes
on
and
it
goes
on
like
that,
and
then
we
have
the
tests,
the
test
project,
which
basically
tests
out
the
individual
methods
that
we
have
over
here.
A
A
Water
and
then
you
can
just
run
so
the
next
test,
as
you
usually
view
and
I
mean
standard
practice.
All
this
does
is
beautiful.
While
you
run
the
test,
so
all
that
is
surpassing
weight.
However,
there's
something
I'd
like
to
do.
I
would
like
to
get
basically
call
see
how
much
of
my
foot
has
been
covered
by
my
unit
test,
so
I
notice
that
I'm
working
with
the
MacBook.
This
will
also
work
on
the
windows
and
I'm
like
mm
Linux,
and
I
probably
will
check
that
out
later.
A
A
Included
it
as
a
package
in
your
test
project
allows
you
to
allows
covilhã
to
integrate
fully
with
your
build
your
build
pipeline,
so
I'm
going
to
show
you
both
approaches
to
using
kaavo
right,
so
we're
gonna
start
off
with
the
most
straightforward
one
which
is
using
it
as
a
package.
So
to
do
that,
all
we
just
do
with
the
net
add
package
over
let
msbuild
by
the
way.
This
is
also
coming
from
public,
not
a
repository
and
yeah
there
we
go
so
using
Cavalli's
straightforward,
so
we
have
a
dotnet
test
that
we
used
before
now.
A
We
want
coverage
information
so
to
do
that,
we
just
add
a
new
property
elect
coverage.
It
was
true
and
rerun
so
over
time,
as
I
mentioned,
that
the
performance
of
Kavala
danced
with
improved.
So
now
it
had,
it
add
very
little
overhead
to
test
one.
There
was
a
time
you
so
I'd,
like
you
know
times
to
be
Somali.
You
should
take
double
the
time
to
run
your
test
when
you're
being
complex,
so
we
can
see
here
by
just
adding
this
extra
property.
A
We
see
that
correlate
automatically
integrated
itself
without
always
having
to
do
any
extra
sort
of
setup.
So
you
can
see
in
the
test
run
everything
past
this
year.
You
can
see
it's
generating
the
the
Jason
result
and
you
can
see
it
summary.
So
you
come
over
back
to
the
code.
You
can
see
yes,
so
this
is
a
very
simple
gist
in
file,
so
this
is
coverlet
or
good,
concrete
format.
A
A
This
is
a
very
straightforward
summary
results,
so
I
mean
from
the
so
if
you
are
not
doing
so,
our
method
coverage
is
at
75%,
which
is
hugely
unacceptable.
If
you
come
over
yeah
it's
because,
of
course
you
have
four
methods
and
we
didn't
create
a
test
for
the
deep
method.
Naturally
certified
we
can
see.
Our
branch
coverage
is
exactly
50%
and
we
attribute
that
to
the
subtraction
actually
that
subtraction
method,
because
you
can
see
it-
has
two
points
of
two
possible
execution
paths.
A
When
you
know
the
second
argument
is
zero,
because
we
do
not
want
to
want
you
to
divide
by
zero
exceptions
and
of
course,
when
that's
not
the
case,
so
we
wish
it
out.
If
you
look
over
at
our
test,
we
see
that
we
are
already
testing
the
path
where
the
second
element
is
not
equal
to
zero
and,
of
course
we
have
the
line
information
which
tells
us
how
much
in
terms
of
how
much
of
our
lines
have
been
covered.
So
before
I
jump
into
improvement
of
coverage
coverage.
A
Results
I
want
to
show
you
all
the
different
formats
that
cover
that
supports
and
how,
to
you
know,
walk
with
them.
So
this
is,
of
course,
the
program
I
ran
previously
to
get
the
coverage
results
so
to
get
a
new
format.
So,
apart
from
the
Jason
formulate
supports
three
other
formats,
which
is
open,
cover,
cobertura
and
alcove,
so
you
can
use
the
comma
led
output
format,
property.
A
A
Marlon's
wait
and
then
you
can
see
for
the
Torah,
so
guys
will
come
in
from
the
Java
world
and
everything
will
you
know
my
family,
our
publisher
and
we
have
alcohol.
Coffee
is
pretty
popular,
especially
in
the
linux
world.
You
can
use
language
and
HTML
to
your
sort
of
generate
HTML
and
HTML
reports.
So
these
are
also
you
can
see.
We
have
a
curvature
info
which
is
alcohol
file.
It's
also
a
pretty
popular
format.
A
We
have
a
true
reformer,
we
have
coverlets
on
Jason
format
and
we
have
open
common
format,
so
this
is
done
so
that
we
do
not
have
to
start
creating
converters
to
convert
between
formats.
Just
so,
you
can
work
with
your
existing
tools.
I
decided,
while
building
this
I
decided
to
pick
some
of
the
most
popular
format,
so
that
you
can
just
use
it
out
of
the
box
and
could
be
a
drop-in
replacement
for
whatever
tool
you
are
using
before.
Okay,.
A
Go
over
to
understanding
how
to
enforce
certain
coverage
requirements
with
coverlet.
So,
as
you
can
see
here,
we
have
line
coverage
or
31.4%
branch
coverage
at
50%
and
Method
coverages
on
the
5%.
So
imagine,
if
you
know
in
an
organizational
setting
well,
we
have
a
best
practice
quality
threshold
for
what
our
coverage
percentage.
A
Let's
call
it
a
hundred
percent
cut
or
perfectionist
so
yeah,
it's
gonna
do
that
it's
gonna
run
our
coverage
and
then
it's
gonna
throw
errands.
So
you
see
we
still
get
our
coverage
summary,
but
then
we
also
get
an
error
that
says:
okay,
a
line
call
is
below
the
specified
threshold
branch
coverage
and
our
method
coverage.
You
can,
of
course,
specify
that.
Okay,
you
only
want
to
enforce
the
threshold
for
say,
method
coverage,
for
example,
and
if
you
do
that
you'd
see
coverlet
will
hold
it
through
a
single
error.
Well,
yeah.
A
We
wanted
to
run
it
across
board,
so
let's
leave
it
at
a
hundred
percent.
So
let's
go
back
to
the
code
and
sort
of
see
how
we
can
get
over
to
a
hundred
percent,
so
the
first
step,
but
that
would
be,
of
course
you
can
look
over
here
and
see
that
we
are
not
just
in
a
div
method,
so
you
can
just
go
ahead
and
add.
E
A
Alright,
so
you
can
see
our
line
coverage
is
gotten
a
bit
better
and
then
ya
got
a
method
coverage
at
100%
and
take
a
look
now
we
only
have
two
arrows,
which
is
the
line
and
a
branch
coverage
results.
So
let's
go
over
here
and
improve
the
branch
coverage.
So
we
need
to
test
this
path
of
our
subtract
method.
So
I'm,
just
gonna
have
other
simple
stuff
here
and
share
return.
Zero.
A
And
then
you
can
see,
we
don't
have
any
errors,
we're
covering
all
our
branches,
we're
covering
all
our
methods,
our
covering
on
all
our
lines
and
yeah.
That
is,
you
know,
straightforward,
pretty
straightforward.
You
don't
have
to
do
so
much
setting
up
or
preparations
to
get
to
get
started
and
put
up
populate
almost
immediately,
all
right,
so
I'm
gonna
move
over
to
showing
us
other
way
of
using
a
coverlet,
because
you
know
this
was
the
approach
originally
used
when
I
developed
it.
But
then
you
have
people
who
did
not
want
to,
of
course
pollute.
A
So
there
are
dependency
trees
with
extra
packages
that
the
only
needed
in
development
they
didn't
want
to
have
to.
You
know,
add
a
new
package,
that's
going
to
make
it
a
production
and
sorry
for
my
development
for
development
purposes.
So
we're
gonna
remove
the
package
now
and
then
we're
gonna
see
how
you
can
stock
cover
that
as
a
tool.
A
Great
alright,
so
now
we
have,
we
no
longer
have
covalent
included
in
the
package
list,
or
so
once
you
get
coverage
results.
So
what
we
can
do
is
we
use
a
new
global
tools
feature
there
call
I
think
he
came
up
with
that
called
2.0
2.1.
I
can't
really
remember,
but
then
all
we
do
is
let
to
install
global
coverlet,
not
console.
Of
course.
This
is
also
a
nugget.
A
Then
do
that
takes
a
while
and
then,
if
you
just
type
coverlet
hope
you
can
see
the
help
on
stuff
for
comely
alright,
so
come
on
up.
What's
the
equivalent
google
to
work
slightly
differently
from
the
MS?
Viewed
the
view
type
line,
integration
approach,
he
requires
a
bit
more
prep
to
be
able
to
get
it
done
quickly.
So
the
first
step
is:
we
need
to
specify
the
path
to
the
test
assembly.
So
by
part
of
the
test
assembly
we
mean
the
path
to
basically
the
compiled.
A
C
A
A
Which
so
now
we
add
the
laptop,
then
we
go
ahead
now
we
have
to
specify
the
target
now,
because
we
do
not
integrate
with
the
beautified
line.
We
have
to
ensure
that
we
specify
our
test
our
test
runner.
So
in
this
case
our
test
Runner
is
going
to
be
the
net
with
using
this
typical
net
tests,
infrastructure
and
then
hatch
other
arcs.
So
here
you
know
the
net
test
over
land
good.
We
are.
A
We
are
in
well
we're
in
the
directory
for
the
test,
so
we
do
not
need
to
specify
the
path
to
the
CS
prod.
We
can
just
put
snow,
so
this
is
basically
the
equivalent
of
doing
one
without
net
test
within
this
for
within
this
directory.
Also,
we
something
very
important
here.
We
have
to
specify
the
nobuhle
flag
and
the
reason
is
remember
when
we
were
talking
about
the
coverlet
internals
right
coverlet
injects
code
into
your
into
your
assemblies.
A
So
if
a
butte
happens
because
usually
don't
never,
you
run
botnet
test,
it
doesn't
beautiful
and
then
runs
your
tests
so
specify
the
beauties.
Okay
just
want
to
test
straight
up.
Do
not
do
it
because
coverlet
actually
instruments
us
end
this
before
it
wants
this,
so
you
need
to
ensure
that
one
in
this
does
not
remove
the
instrumentation
code
that
correlates
to
inject,
and
I
should
also
mention
that
you
shouldn't
be
too
concerned
about
Kovalev
injecting
could
cause
at
the
end
of
every
one,
its
make
sure
to
go
back
to
the
original.
A
So
it
was
like
it
was
never
touched,
and
then
yes,
so
we
have
so
this
should
be
all
so.
You
can
just
hit,
enter
and
watch
it
do
its
magic
and
there
we
go
so
we
have
a
chest
pass.
We
see
we
are
seeing
the
exact
same
information
from
my
BOB,
but
there
isn't
a
convert.
The
global,
that's
because,
of
course,
the
package,
as
well
as
the
google,
to
share
the
same
core
core
functionality.
So
all
thats
difference
is
how
you
use
it
so
yeah
this
is
complex
stuff.
A
A
The
msbuild
version
can
exclude
certain
source
files,
so
it
doesn't,
especially
when
you
have
situations
where
you
also
generated
some
files
that
no
basically
should
not
be
included
in
a
test
run
and
of
course
you
can
make
other
cover
other
with
other
results
or
whatever
one
is
basically
I'm.
Just
gonna
jump
over
to
start
to
see
if
anyone
has
any
questions,
if
not
just
on
move
on
so
train
a
bit
more
with
complex.
A
So
now
that
you've
seen
the
purple
tool
and
you've
seen
the
MS
beaut
I'm
going
to
try
to
integrate
this
with
a
CI
server.
Basically,
so
you
can
see
how
then
you
you
see,
coverlet
run
on
I
mean
a
Windows
machine.
You
see
run
on
Linux
and
then,
if
you
have
time,
we
can
maybe
push
it
to
some
coverage
hosting
service.
So
I
have
yes,
you
can
all
go
over
here
to
get
a
demo
of
this
school
that
I
have
so
I'm
going
to
just
integrate
this
with
up
there.
A
Shouldn't
forget
to
add
that
back
over
here,
because
I
find
that
I
find
that
using
the
highlight
using
the
package
approach
tends
to
be
a
bit
more
convenient
because
then
you
don't
have
to
start
running
but
now
call
global
tools
on
your
CI
server.
But
whichever
works
for
you,
basically,
you
walk
it
away.
That
I
was
built
just.
C
E
C
A
A
Okay,
so,
as
you
can
see,
we
have
we
have
our
tests
running
on
two
different
variants
with
in
two
different
releases
each.
So
we
have
to
develop
the
debug
configuration
for
Windows.
We
have
the
Willys
configuration
for
Windows.
We
have
one
to
debug
and
open
to
release,
so
we
can
just
leave
this
to
run
and
that's
if
it's
run
so
I'm,
just
gonna
move
over
to
the
coverlet
repo
itself,
which
it's
pretty
active.
So
you
know
I
constantly
commit
I.
A
Typically,
have
people
open
up
issues
and
happy
hours
on
the
community,
so
here
you'll
find
huge
detail
to
detail
all
the
documentation
regarding
complex
from,
of
course
talking
about
having
run
so
you
can
sort
of
understand
that
and
then
we
talk
about
usage
with
both
the
global
to
format
as
well
as
using
the
MS.
Video
format
see
ya.
A
So
you
can
see
how
to
do
things
like
specify
multiple
Alfama
at
our
outfit
formats
in
a
single
run,
how
to
merge
results,
how
to
maybe
reduce
our
to
thresholds
and
stuff
and
then
oh
yeah,
something
I
should
I.
Should
let
me
try
to
do.
Let's
go
I
want
to
show
you
how
to
exclude
certain
things
from
being
included
in
coverage
calculations.
So
let's
go
over
here
and
let's
just
temporarily
comment
this
out
come
back
here
and
do
the
let's.
A
A
What's
the
word
developmentally
we're
not
ready
to
include
it
in
our
coverage,
yet
the
Silla
bunch
of
proof
of
concept
going
on
in
there
we
can
just
use
system
6,
:,
Alice's,
yes,
and
then
you
can
just
apply
this
apply.
This
attribute
on
to
the
deal
of
course,
coming
from
this
namespace,
and
you
can
see
that
when
you
go
to
run
the
coverage
again,
you
see
that
the.
A
D
visibility
method
basically
had
no
effect
on
our
final
output
cause.
We
told
cover
letter
completely
ignorant,
so
that's
pretty
as
pretty
convenient
for
situations
where
you
do
not
want
certain
unfinished
methods
to
pollutes
the
coverage,
the
coverage
results
and
if
I,
do
you
one
better
I'll
show
you
the
coverage
or
Jason
that
was
generated,
and
you
see
that
doing
a
search
for
Eve
here
to
no
results.
Well,
if
you
search
for
like
so
because
the
other
methods
you
want
to
the
odd
method,
you
find
all
those
over
there
that
sound
pretty
cool.
E
E
A
So
we
have
another,
we'll
have
another
one
running
in
a
bit
all
right.
So
while
this
is
running
I'll
just
talk
about
visualizing,
your
coverage
results.
Cuz,
look
at
it
this
way
right!
You
have
all
this
information
stored
here.
You
have
all
the
stuff
in
here,
but
it's
not
particularly
human
readable.
You
can
of
course,
write
a
piece
of
code,
pass
this
information
and
give
out
a
bit
more.
Give
you
a
bit
more
context,
but
well
it's
a
lot
easier.
A
If
you
have
some
sort
of
graph
or
charts
on
stock
to
you
know,
take
a
look
at
and
stuff
so
I'm,
just
gonna
cut
all
this
so
I'm
going
to
talk
about
very
briefly
about
it's
called
report
generator
for
people
who
so
those
of
you
who
use
them
to
cover
windows.
A
lot
you'll
be
very
familiar
with
this
particular
project
from
Daniel.
A
So
what
it
does
is
it
checks
in
with
like
XML
reports
in
this
format
in
any
of
these
and
then
generation
section,
basically
something
something
like
this,
so
how
this
is
happening,
I'm
just
gonna
go
over
here
and
try
to
walk
with
it.
So
luckily
has
a
remote
option:
I
haven't
used
this
go
over
to
the
four
by
the
way
bone,
so
just
gonna
copy
that
out.
A
A
A
A
So
yeah,
so
we
can
see
my
information
you
can
see
very
it
shows
us.
You
can
go
here
and
see
all
that
information.
You
can
see
each
line
that
is
covered,
which
is
absolutely
great.
We
can
see
the
line
corner
to
consider
branch
coverage
as
well.
I,
don't
think
it
does
method
coverage
yeah.
So
this
is
pretty
cool,
so
straightforward,
very
close,
first
platform,
where
you
can
get
information
about
about.
You
know
how
how
all
your
tests
cover
your
code.
A
A
We're
almost
done.
Oh
yeah,
by
the
way
I'm
confident
also
uses
it
sort
of
like
a
dog
fooding
process
cover
that
uses
it's
on
basically
cow
electrons
tests
on
itself
and
use
that
to
generate
this
and
the
little
badge
over
here
that
we
integrate
with
code
code,
which
is
pretty
popular.
You
have
animals
on
Comoros
and
stuff.
A
Also,
let's
see
so
over
here,
you
see
that
coverlet
is
walking
is
using
the
X
units
using
the
X
units
test
framework,
just
a
good
note,
comma
networks,
basically
with
any
test
framework
that
integrates
with
the.net
test
functionality
in
the
CLI.
So
it's
a
popular
one
or
it's
one
within
your
organization
Conrad
would
be
able
to
work
with
it.
A
As
long
as
you
know,
you
have
it
together
with
botnet
test,
also
using
the
global,
if
it's
not
even
if
it's
not
into
better
internet
test,
because
you
of
course
have
the
ability
to
specify
things
like
the
Chester
owner
and
the
animals
to
those
test
runners.
Ideally
Koval
I
should
be
able
to
work
with,
basically
any
don't
let
unit
tests
wanna
run
out
there.
So
you
can
see
the
Linux
beaut
over
here
and,
of
course
we
can
see
our
corporate
information
yeah.
A
So
I'm,
going
to
go
back
to
the
slides.
Now
is
that's
pretty
much
it
for
the
demos
where
the
slides
wait,
yeah
all
right.
So,
as
I
mentioned
earlier,
we
have
a
bunch
of
host
ed
coverage
services.
The
coverlet
walks
me.
So
what
you
could
call
using
the
open
cover
format
it
works.
We
could
climate
also
using
the
open
using
the
curvature
format,
so
you've
got
or
and
our
co-workers
our
cocoa
butter
are
supported
by
could
climate
and
correlates
well,
there's
also.
A
Yes,
yes,
that's
video
studio
team
services,
although
now
it's
called
idea
develops
which
is
pretty
cool,
especially
because
it
usually
like
three
different
views:
agents,
windows,
a
map
and
as
well
as
Linux,
and
then
you
have
so
lucky,
which
is
another
hosted
service
that
you
can
also
use
southern
qubit,
combat
URL
or
the
open
panel
format,
and
then
you
have
uncover
O's,
which
is
also.
We
should
also
work
with
the
open
cover
format
that
cover
light
generates
yeah.
So,
let's
move
over
so
this,
but
I'm
actually
quite
excited
about
this
part.
A
We
have
some
project
over
time
that
have
been
using
coverlets
to
get
stuff
done
so
github
uses
coverlet
for
their
octo
kids,
the
nets
clients
they
also
use
coverlet
in
there.
You
also
use
community
their
gravity
on
their
client
as
well
Microsoft
and
the
runtime
there's
the
neurons
and
their
use
comma.
A
Let's
to
get
code
coverage
for
the
scoville
ethical
code
coverage
for
their
linux
boots
for
the
music
for
the
leadcore
effects,
so
for
those
who
might
not
be
familiar
with
that
term,
but
their
core
effects
is
basically
more
like
bridge
class
libraries
for
the
network,
but
actually
in
Stanford
on
their
core
and
they'd,
be
more
modular
because
they're
distributed
as
nugget
packages
as
opposed
to
being
included
in
the
runtime.
And
now
you
have
a
century
which
is
a
fairly
popular
application
performance
monitoring
service
that
allows
that
you
is
correlated
with
the
let's
video
dotnet
diet.
A
Well,
also,
I
should
I
think
you
only
fair
to
mention
some
other
alternatives,
because,
even
though
coverlet
is
by
far
the
most
popular
cross-platform
solution,
he
wasn't
the
first
on
the
scene
and
sometimes
you
might
have
certain
specific
requirements
that
Cavalli
might
not
be
able
to
meet.
I
may
not
be
willing
to
add,
depending
on
how
much
interested
has
so.
Usually
you
could
just
use
the
other
tool,
which
is
a
mini
cover
by
Lucas,
Lorentz
and
out
covered
eyes
to
be
on
so
this
tool.
If
project
the
they
try
to
achieve
the
same
result.
A
A
Cemented
think
what
directories
you
want
to
find
all
your
sauce,
your
sauce
files
from
and
even
up
to,
you
know
you
having
to
do
the
initialization
yourself
to
ensure
that
you
have
release
ready
packages.
Oscar
is
also
very
well
featured
projects
as
well,
so
you
can
check
both
of
them
out
and
see.
Just
in
case
you
know,
coverlet
doesn't
meets
certain
needs,
then
yeah
I
mean
you
can
get
in
touch
with
me
on
any
of
these
mediums.
I'm,
basically
its
own,
either
everywhere.
A
B
Good
comments,
a
lot
of
people
say
great
demo.
They
really
enjoyed
it
so
far,
I
really
enjoyed
it
over
here
kind
of
learn
about
it.
You
know
you
did
say
that
I
have
a
question.
I
guess
you
did
mention
that
it
works
with
any
of
the
dotnet
test,
runner
so,
and
unit
M
s,
test
and
axion,
and
all
of
them
so.
A
B
A
B
Awesome
yeah
I
think
that's
all
the
questions
over
here
Tony.
Thank
you
so
much
for
for
showing
us
all
the
goodies,
yeah
and
looking
forward
to
be
able
to
link
to
your
work
every
time.
I
get
a
question
know
about
I
hope.
There's!
No!
The
test
on
SNL
a
visible
point
to
your
talk,
cool
all
right,
Tony!
Oh,
listen!
Thank
you.
I
call
cheers
well
have
a
lovely
lovely
day
and
thanks
for
the
presentation
all.
B
D
D
B
D
D
B
B
D
Then
I
would
have
won't
be
very
best
better
here,
I'm
talking
that
con.
For
that
yeah
we
actually
some
of
the
folks
who
are
watching
the
stream
I
want
to
say
this
morning,
but
it
was
yesterday
morning
when
we
were
rolling
with
Kathleen
Dollard.
There
were
a
bunch
of
folks
that
gave
out
gift
subscriptions
to.
D
B
D
B
D
B
All
of
our
twitch
subscribers
right
now,
I'll
give
you
a
I'll,
send
you
a
I'll
got
to
a
stream
deck.
If
you,
whoever
makes
6
now
I'm,
not
gonna,
go
all
crazy
with
the
15,
but
I
will
send
you
a
stream
deck
mini.
If
you
submit
to
Jeff
on
Twitter
your
you
have
to
make
the
music,
though,
or
your
audio
voice
and
whoever
Jeff
picks.
D
B
D
F
Love
as
your
functions
as
your
functions
is
a
service
compute
offering
that
enables
you
to
run
code
on
demand.
We
don't
having
to
explicitly
provision
or
manage
infrastructure
in
this
video
you'll
learn
how
to
get
started.
Developing
service
applications
with
Azure
functions
using
Visual
Studio
code.
If
you
want
to
get
started
with
Azure
functions
inside
of
Visual
Studio
code,
you
need
to
make
sure
that
you
have
the
azure
functions.
Extension
installed,
so
I'm
going
to
go
to
install
extensions
and
I'm
going
to
search
for
as
your
functions
now.
F
I'm
gonna
go
down
and
select
the
azure
functions.
Extension
for
Visual
Studio
code
now
notice,
I
already
have
it
installed,
but
if
you
don't
make
sure
you
go
ahead
and
hit
that
install
button
now,
once
you
have
installed
an
extension,
you
should
see
a
section
down
here
for
a
sure
with
the
azure
symbol
and
then,
if
I
click
on
functions,
it
should
show
me
all
my
various
subscriptions
that
I
have
and
if
I,
for
instance,
open
the
one
that
says,
smart
hotel
and
I
opened
the
functions.
F
I
should
be
able
to
see
all
the
functions
that
I
have
available.
Inside
of
that
specific,
as
your
functions
app
now,
let's
say:
I
wanted
to
create
a
new
functions.
App
right
here
on
my
machine.
I
can
hit
this
icon
here.
That
says,
create
new
project
and
now
I
get
to
select
where
exactly
I
want.
To
put
this.
So,
let's
create
a
new
folder
first
function.
F
F
So,
let's
close
that
one
in
the
back
now
that
my
project
is
created,
I'm
gonna
go
ahead
and
restore
the
missing
dependencies
now.
The
next
thing
we
have
to
do
is
actually
create
a
function
inside
of
our
empty
project,
so
I'll
open
a
command
palette.
Again,
this
time,
I'll
type,
add
functions
and
I'll
go
to
create
function.
I'll
select
that
function
app
that
we
just
created,
because
that's
why,
when
I
go-
and
in
this
case
I
want
to
create
an
HTTP
triggered
function,
so
I'll
select
the
function
trigger
that
I
want.
F
Now
we
have
to
actually
give
this
function.
A
name
I'll
call
this
simple
API.
We
choose
the
name
space.
Next,
we
can
choose
the
access
rights.
I'm,
just
gonna
leave
this
as
anonymous
for
now
and
then,
within
a
few
seconds,
visual
studio
code
should
have
generated
a
function
using
the
options
that
we
just
specified.
Now,
if
I
close
the
terminal,
we
could
browse
through
the
editor,
and
we
could
see
the
code
that's
available
for
us
to
use
now.
What,
if
I,
wanted
to
debug
this
function
on
my
machine?
F
F
F
Now
back
in
Visual
Studio
code,
you
can
see
that
my
endpoint
was
hit.
I
could
continue
stepping
through
this
function
and
I
can
view
the
variables
that
stack,
trace
and
I
can
also
see
any
exceptions
that
get
thrown
as
you
would
expect
in
any
regular
debugging
session
I'll.
Let
it
go
ahead
and
finish
running
and
now
back
in
postman
I
can
see.
My
results
here,
return
to
me
in
the
screen.