Slide 1

Slide 1 text

*OUSPEVDUJPOUPQZUFTU "OESFBT1FMNF &VSP1ZUIPO 4MJEFTIUUQTQFBLFSEFDLDPNQFMNF personalkollen

Slide 2

Slide 2 text

5PQJDT w*OUSPEVDUJPO w5FTUJOHXJUIMFTTCPJMFSQMBUF w1MVHJOT w5FTUEJTDPWFSZ w1ZUFTUpYUVSFT w1PSUJOHFYJTUJOHQSPKFDUT

Slide 3

Slide 3 text

5FTUJOH

Slide 4

Slide 4 text

BGVMMGFBUVSFE1ZUIPOUFTUJOHUPPM QZUFTU

Slide 5

Slide 5 text

No content

Slide 6

Slide 6 text

5FTUTXJUIMFTTCPJMFSQMBUF

Slide 7

Slide 7 text

%FNPUJNF

Slide 8

Slide 8 text

%FNP#FGPSF import  unittest   ! ! def  upper_reverse(text):          return  ''.join(reversed(text.upper()))   ! ! class  TestUpperReverse(unittest.TestCase):          def  test_upper_reverse(self):                  self.assertEqual(upper_reverse('hello'),  'OLLEH')

Slide 9

Slide 9 text

%FNP"GUFS def  upper_reverse(text):          return  ''.join(reversed(text.upper()))   ! ! def  test_upper_reverse():          assert  upper_reverse('hello')  ==  'OLLEH'

Slide 10

Slide 10 text

%FNPUJNF w"TTFSUJPOTXJUIQMBJOBTTFSUTUBUFNFOU w4VCDMBTTJOH5FTU$BTFJTOPUSFRVJSFE w5FTUTBSFGPVOEBOEDPMMFDUFEXJUIUIF QZUFTUDPNNBOE

Slide 11

Slide 11 text

1MVHJOT w%JTUSJCVUFEQBSBMMFMJ[FEQZUFTUYEJTU w%KBOHPQZUFTUEKBOHP w5XJTUFEQZUFTUUXJTUFE w-PHDBQUVSFQZUFTUDBQUVSFMPH w$PWFSBHFSFQPSUJOHQZUFTUDPW wBOENBOZNPSF wIUUQQZUFTUPSHMBUFTUQMVHJOTIUNMFYUFSOBMQMVHJOT

Slide 12

Slide 12 text

3VOOJOHUIFUFTUT

Slide 13

Slide 13 text

3VOUIFFOUJSFUFTUTVJUF $  py.test

Slide 14

Slide 14 text

3VOBMMUFTUTJOBTQFDJpDpMF $  py.test  test_bar.py

Slide 15

Slide 15 text

3VOBMMUFTUDBTFTUIBUBSFOBNFE UFTU@GPP $  py.test  -­‐k  test_foo

Slide 16

Slide 16 text

#ZEFGBVMU QZUFTUEJTDPWFSTUFTUTJO test_*.py   *_test.py

Slide 17

Slide 17 text

.BSLJOHUFTUT ZPVDBONBLFVQZPVSPXONBSLFST import  pytest   ! ! @pytest.mark.slow   def  test_very_long_running_test():          pass

Slide 18

Slide 18 text

3VOBMMUFTUTXJUIBTQFDJpDNBSLFS $  py.test  -­‐m  slow

Slide 19

Slide 19 text

PSXJUIPVUBTQFDJpDNBSLFS $  py.test  -­‐m  "not  slow"

Slide 20

Slide 20 text

4LJQQJOHUFTUT import  pytest   import  sys   ! ! @pytest.mark.skipif(sys.platform  ==  'darwin',                                          reason='Feature  Y  not  supported  on  OS  X')   def  test_non_osx():          pass

Slide 21

Slide 21 text

%FQFOEFODZJOKFDUJPOPGUFTUpYUVSFT QZUFTUpYUVSFT

Slide 22

Slide 22 text

%FNPUJNF

Slide 23

Slide 23 text

%FQFOEFODZJOKFDUJPOPGUFTUIFMQFS import  pytest   from  selenium.webdriver  import  Firefox   ! @pytest.fixture   def  webdriver(request):          driver  =  Firefox()          request.addfinalizer(driver.quit)          return  driver   ! def  test_nix_website_title(webdriver):          webdriver.get('https://nixos.org/nix/')          assert  'Nix'  in  webdriver.title   ! def  test_pytest_website_title(webdriver):          webdriver.get('http://pytest.org/latest/')

Slide 24

Slide 24 text

3VOUFTUTJOGPVSQSPDFTTFT $  pip  install  pytest-­‐xdist   $  py.test  -­‐n  4

Slide 25

Slide 25 text

VOJUUFTU /PTFTUZMFBOE%KBOHPUFTUTBSFTVQQPSUFE 1PSUJOHBOFYJTUJOHQSPKFDU

Slide 26

Slide 26 text

"EWBODFE6TFTPGQZUFTU'JYUVSFT 'MPSJT#SVZOPPHIF "! UPEBZ ! *NQSPWJOHZPVSBVUPNBUFEUFTUJOHXJUIQZUFTU )PMHFS,SFLFM ""!'SJEBZ %PO`UNJTT

Slide 27

Slide 27 text

&NBJMBOESFBT!QFMNFTF 5XJUUFS!BOESFBTQFMNF *3$QFMNF!QZMJCPO'SFFOPEF
 4MJEFTIUUQTQFBLFSEFDLDPNQFMNF 2VFTUJPOT