-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathtutorial-19-converting-from-mocha.html
executable file
·85 lines (68 loc) · 5.97 KB
/
tutorial-19-converting-from-mocha.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
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>JSDoc: Tutorial: Converting from Mocha to Suman</title>
<script src="scripts/prettify/prettify.js"> </script>
<script src="scripts/prettify/lang-css.js"> </script>
<!--[if lt IE 9]>
<script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
<![endif]-->
<link type="text/css" rel="stylesheet" href="styles/prettify-tomorrow.css">
<link type="text/css" rel="stylesheet" href="styles/jsdoc-default.css">
</head>
<body>
<div id="main">
<h1 class="page-title">Tutorial: Converting from Mocha to Suman</h1>
<section>
<header>
<h2>Converting from Mocha to Suman</h2>
</header>
<article>
<p>You can easily convert a single Mocha test or directory of Mocha tests to Suman tests with the following command:</p>
<p><br>
<span style="background-color:#9ACD32"> <code>$ suman --convert --src=[src-dir/src-file] --dest=[dest-dir]</code></span>
<br>
<br></p>
<h3>Making the switch, taking the plunge</h3><p>The best steps to start making the switch from Mocha to Suman are as follows: </p>
<ol>
<li><p>Create a commit or tag before you do anything further; the commit message might be "last commit pre-suman-conversion"</p>
</li>
<li><p>Rename your "test" directory to "test-old" or whatever your test directory is called if it's not "test"</p>
<p> => <code>mv test test-old</code> // or <code>git mv test test-old</code> (this will automatically stage the change)</p>
</li>
<li><p><span style="background-color:#9ACD32"> <code>$ suman --convert test-old test</code></span></p>
</li>
</ol>
<p>This should run very quickly, much less than 1 second. Now you have Suman tests replacing
all your Mocha tests in your original test directory!</p>
<p>You can compare the new Suman tests with the old Mocha tests in test-old for awhile, for reference.
Please be aware of the common catches and caveats associated with converting Mocha tests to Suman tests, below.
We are working on making the conversion close to 100% reliable.</p>
<h2>Here are the current pitfalls and caveats with regard to converting from Mocha to Suman:</h2><p>Suman test cases and hooks use a singular param t (t itself is an error-first callback and callback functions belong to the t function-object,
and they can be called in any context, without problem).</p>
<ol>
<li>Problem caused by: hooks that forgo the anonymous wrapper function</li>
</ol>
<p>normally we have:</p>
<pre class="prettyprint source lang-js"><code>
before(function(done){ //mocha version
someHelperFn(done);
});
this.before.cb(t => { //suman equivalent
someHelperFn(t);
});</code></pre>
</article>
</section>
</div>
<nav>
<h2><a href="index.html">Home</a></h2><h3>Tutorials</h3><ul><li><a href="tutorial-00-about.html">About Suman</a></li><li><a href="tutorial-01-getting-started.html">Getting Started with Suman</a></li><li><a href="tutorial-02-simple-examples.html">Simple Examples</a></li><li><a href="tutorial-03-high-level-overview.html">Higher Level Overview</a></li><li><a href="tutorial-04-command-line-options.html">Command line options</a></li><li><a href="tutorial-05-advanced-use.html">Advanced Use</a></li><li><a href="tutorial-06-suman-config-file.html">06-suman-config-file</a></li><li><a href="tutorial-07-suman-patterns-and-recipes.html">Suman Patterns and Recipes</a></li><li><a href="tutorial-08-suman-anti-patterns.html">Suman Anti-Patterns</a></li><li><a href="tutorial-09-suman-reporters.html">Suman reporters and creating custom reporters</a></li><li><a href="tutorial-10-dependency-injection.html">10-dependency-injection</a></li><li><a href="tutorial-11-advanced-installation.html">Advanced installation of Suman</a></li><li><a href="tutorial-12-using-suman-with-babel.html">Using Suman with Babel</a></li><li><a href="tutorial-13-test-dir-organization.html">How to organize your test directory</a></li><li><a href="tutorial-14-debugging-suman.html">How to debug Suman tests</a></li><li><a href="tutorial-15-testing-child-processes-with-suman.html">Testing and debugging processes that spawn child processes</a></li><li><a href="tutorial-16-using-spies-with-suman.html">Using test spies with Suman</a></li><li><a href="tutorial-17-suman-server-and-web-reporter.html">About Suman server and built-in web reporter</a></li><li><a href="tutorial-18-tips-and-tricks.html">Tips and tricks</a></li><li><a href="tutorial-19-converting-from-mocha.html">Converting from Mocha to Suman</a></li><li><a href="tutorial-21-running-suman-against-shell-scripts.html">21-running-suman-against-shell-scripts</a></li><li><a href="tutorial-22-case-studies.html">22-case-studies</a></li><li><a href="tutorial-22-programmatic-usage-and-macros.html">22-programmatic-usage-and-macros</a></li><li><a href="tutorial-27-suman-best-practices.html">Best practices with Suman</a></li><li><a href="tutorial-30-anatomy-of-suman-suite.html">Anatomy of Suman Test Suites</a></li><li><a href="tutorial-31-workflows-with-suman.html">Workflows with Suman => Watchers and transpilation</a></li><li><a href="tutorial-40-integrating-with-ci-cd.html">Integrating with CI/CD</a></li><li><a href="tutorial-41-suman-exit-codes.html">List of Suman exit codes</a></li><li><a href="tutorial-42-hidden-secret-features.html">Some secret / hidden features of Suman</a></li><li><a href="tutorial-50-suman-parallelism.html">Complete explanation of Suman parallelism</a></li><li><a href="tutorial-70-usage-with-code-coverage-tools.html">Usage with code coverage tools (namely Istanbul)</a></li><li><a href="tutorial-90-roadmap.html">Suman roadmap and upcoming efforts</a></li><li><a href="tutorial-99-faq.html">FAQ</a></li><li><a href="tutorial-advanced-parallelization-2.html">advanced-parallelization-2</a></li></ul>
</nav>
<br class="clear">
<footer>
Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.4.3</a> on Wed Feb 08 2017 22:39:23 GMT-0800 (PST)
</footer>
<script> prettyPrint(); </script>
<script src="scripts/linenumber.js"> </script>
</body>
</html>