-
Notifications
You must be signed in to change notification settings - Fork 0
/
tutorial-00-about.html
executable file
·75 lines (60 loc) · 6.3 KB
/
tutorial-00-about.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
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>JSDoc: Tutorial: About 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: About Suman</h1>
<section>
<header>
<h2>About Suman</h2>
</header>
<article>
<p>Suman is a test <i>framework</i>, not a library. It gives you strong guidance on how to organization your tests, including naming conventions, test directory organization,
and preventing the use of global variables across tests. However Suman is unopinionated and agnostic when it comes to:</p>
<ol>
<li>assertions</li>
<li>spies</li>
<li>reporters</li>
<li>mocking libraries</li>
</ol>
<p>Suman provides an extremely powerful and versatile framework designed for maximum code reuse, test isolation,
parallelism with multiple Node.js processes and the best possible developer experience. Suman is designed to make
tests "nodeable" by allowing any given test to be run with <code>node</code> itself, which frankly is amazing,
as well as being highly debuggable with excellent error reporting and useful logging files. </p>
<p>Suman also has built-in code coverage tooling (using Istanbul), as well as filesystem watchers that can run your test suites every-time you
make a change to the codebase, or watchers which run a test file everytime you make a change to the test file. Suman provides a simple Express
server which runs in the background and collects/reports test data and watches for filesystem changes.</p>
<h3>Primary features</h3><h3>Transpilation and usage with Babel:</h3><p>Suman has first-class support for transpilation with Babel but recommends you avoid transpilation,
so that your tests remain node-able and are more debuggable. If you like <code>async/await</code> functionaliy, the Suman docs
will demonstrate how you can achieve the same thing with ES6 generators + Promises. Indeed, <code>async/await</code> is simply
syntactic sugar over those constructs. Instead of using <code>babel-register</code> or <code>babel-node</code>, Suman recommends transpiling your
test source to a target directory, so that your test tranpilation process is transparent. Using <code>suman.conf.js</code>, you can tell Suman
which methodology you wish to use.</p>
<h3>Target audience</h3><p>Suman was written primarily to serve the needs of application developers in the workplace, especially those
who need powerful tools for integration and system testing.</p>
<p>Node.js library authors, writing an NPM package here or an NPM package there, may not need all the features included in Suman,
and may find that using something as simple as Tape will suit their needs.</p>
</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>