/
great-pythondjango-testing-talks.html
114 lines (110 loc) · 6.36 KB
/
great-pythondjango-testing-talks.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="chrome=1">
<title>Great Python/Django Testing Talks - Mike Grouchy</title>
<link rel="stylesheet" href="http://mikegrouchy.com/theme/stylesheets/styles.css">
<link rel="stylesheet" href="http://mikegrouchy.com/theme/stylesheets/pygment_trac.css">
<link rel="stylesheet" href="http://mikegrouchy.com/theme/stylesheets/font-awesome.min.css">
<script src="http://mikegrouchy.com/theme/javascripts/scale.fix.js"></script>
<link rel="alternate" type="application/rss+xml" title="MikeGrouchy.com RSS Feed" href="http://feeds.feedburner.com/mikegrouchycom">
<meta name="viewport" content="width=device-width, initial-scale=1, user-scalable=no">
<!--[if lt IE 9]>
<script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
<![endif]-->
<script type="text/javascript">
var _gaq = _gaq || [];
_gaq.push(['_setAccount', 'UA-1990784-1']);
_gaq.push(['_trackPageview']);
(function() {
var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
})();
</script>
</head>
<body>
<div class="wrapper">
<header>
<h1 class="header"><a href="http://mikegrouchy.com" class="home-link">Mike Grouchy</a></h1>
<p class="header">Ambitious Python Developer, Beer drinker and lover of all things basketball.</p>
<ul>
<li><a class="" href="http://mikegrouchy.com/projects.html"><i class="icon-beaker"></i> Projects</a></li>
<li class=""><a class="twitter" href="http://twitter.com/mgrouchy"><i class="icon-twitter"></i> @mgrouchy</a></li>
<li class=""><a class="" href="http://github.com/mgrouchy"><i class="icon-github"></i> Code</a></li>
<li class=""><a class="" href="mailto:mgrouchy@gmail.com"><i class="icon-email"></i> Email</a></li>
</ul>
<p class="header"></p>
</header>
<section>
<h1><a class="article-title" href="http://mikegrouchy.com/blog/2012/06/great-pythondjango-testing-talks.html">Great Python/Django Testing Talks</a></h1>
<p class="meta">
<small>
<span class="article-date">Sun 10 June 2012</span> <span class="tags"><a href="/tag//"></a> </span>
</small>
</p>
<br/>
<div class="entry-content">
<p>
<p>I have been working on some tests for an upcoming product at <a href="http://swixhq.com">SWIX</a>
and as any good developer I think its important to make an effort to constantly be
learning new things. In this vein I starting digging through the videos for
this years <a href="https://us.pycon.org/2012/">Pycon US</a>. Lo and Behold Testing was a
popular topic at Pycon so there were lots of talks to watch!</p>
<p>My two favorite talks were Testing and Django by <a href="https://twitter.com/carljm">Carl Meyer</a>
and Fast Test, Slow Test by the always insightful <a href="https://twitter.com/garybernhardt">Gary Bernhardt</a>.</p>
<h2>Testing and Django - Carl Meyer</h2>
<p><iframe width="600" height="450" src="http://www.youtube.com/embed/ickNQcNXiS4" frameborder="0" allowfullscreen></iframe>
<br/>
Carl Meyer gives this great deep dive into testing Django projects, there are
plenty of gems in here, including some code for a Django Test Runner using Unittest2's
test discovery. Carl gives some great tips for writing tests with Django as well as tips
for just writing good tests in general.</p>
<h2>Fast Test, Slow Test - Gary Bernhardt</h2>
<p><iframe width="600" height="450" src="http://www.youtube.com/embed/RAxiiRPHS9k" frameborder="0" allowfullscreen></iframe>
<br/>
This talk is superb. Gary Bernhardt talks about how to write a fast test suite as
well as how you should be testing your applications. He points out that the slow
test suite problem is usually releated to the problem of test authors writing Unit
Tests which are actually System Tests.</p>
<p>Those two testing talks were my favorites, but some other good ones that are
worth checking out are:</p>
<ul>
<li><a href="http://www.youtube.com/watch?v=TmuEDxX1FDQ">Certainty in an Uncertain World: Gaining Confidence through Security Testing</a> - Geremy Condra</li>
<li><a href="https://www.youtube.com/watch?v=hvPYuqzTPIk">Fake It Til You Make It: Unit Testing Patterns With Mocks and Fakes</a> - Brian K. Jones</li>
<li><a href="https://www.youtube.com/watch?v=1VZfL9JVgFg">Speedily Practical Large-Scale Tests</a> - Erik Rose</li>
<li><a href="https://www.youtube.com/watch?v=Xu5EhKVZdV8">Stop Mocking, Start Testing</a> - Augie Fackler & Nathaniel Manista</li>
<li><a href="https://www.youtube.com/watch?v=9LVqBQcFmyw">pytest - rapid and simple testing with Python</a> - Holger Krekel</li>
</ul>
<p>Besides these videos another great resource to take your Python testing a bit
farther is this book, the <a href="http://amzn.to/LUe8SX">Python Testing Cookbook </a>. It
has plenty of great strategys that you can use for testing your Python projects.</p>
<p>If you have any other good Django testing tips or Talks leave them in the comments.
If you are looking for more Python news, tips and discussion you should check out
<a href="http://pycoders.com">Pycoders Weekly</a>, a weekly Python newsletter that I curate.</p>
</p>
</div>
<div class="disqus">
<div id="disqus_thread"></div>
<script type="text/javascript">
/**
* var disqus_identifier; [Optional but recommended: Define a unique identifier (e.g. post id or slug) for this thread]
*/
var disqus_shortname = 'mikegrouchy';
(function() {
var dsq = document.createElement('script'); dsq.type = 'text/javascript'; dsq.async = true;
dsq.src = 'http://' + disqus_shortname + '.disqus.com/embed.js';
(document.getElementsByTagName('head')[0] || document.getElementsByTagName('body')[0]).appendChild(dsq);
})();
</script>
<noscript>Please enable JavaScript to view the <a href="http://disqus.com/?ref_noscript">comments powered by Disqus.</a></noscript>
<a href="http://disqus.com" class="dsq-brlink">blog comments powered by <span class="logo-disqus">Disqus</span></a>
</div> </section>
<footer>
<span class="copyright" style="font-size:10px;">© Mike Grouchy - 2008-2013</span><br/></p>
</footer>
</div>
<!--[if !IE]><script>fixScale(document);</script><!--<![endif]-->
</body>
</html>