npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

@bradpitcher/unittestscad

v4.1.0

Published

UnitTestSCAD: Unit Testing for OpenSCAD

Downloads

6

Readme

UnitTestSCAD LogoUnitTestSCAD

License NPM coverage Join the chat at https://gitter.im/UnitTestSCAD/Lobby

UnitTestSCAD: expect(cube.scad).toBe(cube);

Unit Testing for OpenSCAD

UnitTestSCAD brings forth unit testing capabilities to OpenSCAD. Unit testing enables you to check for regressions, accuracy and robustness of code in a fast, repeatable manner. Speed of development increases as unit tests will worry about your regressions, and allow you to plow ahead with your vision.

Contents

Getting Started

Installing OpenSCAD

UnitTestSCAD has a very strong dependency on OpenSCAD. This is because UnitTestSCAD uses some of the features from OpenSCAD to perform some of its underlying testing.

Simply start by installing OpenSCAD if you have not done so already:

OpenSCAD Home

Adding OpenSCAD to PATH

In order for UnitTestSCAD to take advantage of OpenSCAD's features, the folder which contains the OpenSCAD files must be added to the PATH environment variable on your machine.

While the path will generally be the same on all platforms (Windows, Linux, Mac), the file they point to specifically is different. If you have moved the respective file manually, you will need to point at:

  • Windows: openscad.com
  • Linux: openscad.exe
  • Mac: openscad.exe

These files will be in the location where you installed OpenSCAD. For example, by default on Windows: C:/Program Files/OpenSCAD.

Note: The path to the folder containing the files is to be added to the PATH environment variable.

Installing NodeJS and NPM

UnitTestSCAD is powered by NodeJS and distributed by NPM. They are distributed together and complement each other well. Follow the installation from the NodeJS website if you do not have these installed:

NodeJS Home

Installing UnitTestSCAD

If all has gone well, then installing UnitTestSCAD will be a simple command to run in the command line/terminal.

To install UnitTestSCAD, run the command:

npm i unittestscad

Usage

UnitTestSCAD should be required as standard into a NodeJS script.

const UnitTestSCAD = require('unittestscad');

UnitTestSCAD exposes several classes designed to enable assertions on your .scad functions and modules. For example, to assert against a .scad file which produces a 3d model (my3dmodel.scad), you can create it as such:

const my3dmodel = new UnitTestSCAD.ThreeDModule({
  include: ['my3dmodel.scad'],
  variables: {
    points: '[[0, 0], [1,1]]',
    range: '[0 : 20 : 80]',
    width: 5.56,
    text: '"some text"',
    withExtension: true,
    $fn: 100,
  }
});

expect(my3dmodel.width).toBe(5.56);

API Reference

See API Documentation for more details.