How do I run only one test using Meteor and TinyTest? - meteor

I'm using the "test-packages" command to run my meteor package tests.
meteor test-packages --once --driver-package 'test-in-console' -p 4096 package:name
I'd like to be able to run only one test or a subset of tests given a pattern. Is this possible?

Client side: you can click the "reload" link next to any text.
Server side: only way I found is to comment out the tests you don't want to run.

Related

Run unit tests on git push and integration tests on pull request

When building R packages, we use testthat to write tests. We have 2 files: a test file for the specific package (specific.R), and one that we use to make sure all packages continue to work together and the overall result is fine (overall.R). Both tests are currently run when we push to github or create a PR through Travis, which implicitly runs this line of code(R CMD check *tar.gz). check runs all the tests in the test folder, and thus both files are run.
Now, I'm a bit new to testing... but it seems that we have more or less recreated the difference b/w a unit test and an integration test.
Considering that the tests for overall.R do take a lot longer to run, we would like to restrict it so that they only run when we do a pull-request to the package (when we have introduced new functionality on a different dev branch) while the package-specific tests keep running every time we commit/push to the repo.
Is this possible in github or Travis?
You could put your overall.R script into a different directory and then specify this folder as the new tests directory for pull-request hooks, but this will then only run your integration tests and not the unit tests. See R CMD check --help
R CMD check --test-dir integration_tests package.tar.gz

How to inject Docker container build timestamp in container?

I would like to build a container which shows up in its startup log its build datetime. Is there a way to have that information injected from my build machine into the container ?
The output of each RUN step during a build is the changes to the filesystem. So you can output the date to a file in your image. And the logs from the container are just the stdout from commands you run. So you can cat out the date inside your entrypoint.
In code, you'd have at the end of your Dockerfile:
RUN date >/build-date.txt
And inside an entrypoint script:
#!/bin/sh
#.... Initialization steps
echo Image built: $(cat /build-date.txt)
#.... More initialization steps
# run the command
exec "$#"
You could use an ARG to pass in the current build timestamp at build time. You'd have to docker build --build-arg build-date=$(date) or something like that. Having done that, you can refer to the argument using something similar to shell variable syntax at build time.
This is probably more useful if you have a significant build step in your Dockerfile (you're compiling a Go application) or if the metadata you're trying to embed is harder to generate programmatically (the source control version stamp, the name of the person running the build command).

How to run multiple instances of the same Meteor app in development?

I've tried to run my Meteor application within two individual consoles at the same time like this:
cli #1
D:\Some\Project> meteor
cli #2
D:\Some\Project> meteor --port 4000
If I try to run two instances of the same application at the same time, I get this output from my 2nd instance:
=> Started proxy.
Error: EBUSY, rmdir 'D:\Some\Project\.meteor\local\build\programs\server'
Does anyone have any suggestions how to mitigate this error, so that I can check some of my cross-instance functionality?
I do realize that I could copy the entire project folder, and run them with the same MONGO_URL, but a better approach would be much appreciated! :)
Start the first instance of your app:
meteor
This command will start your app and MongoDD instance running on port 3001 with meteor database.
Wait until your first instance starts, then open up the second console and type:
export MONGO_URL=mongodb://localhost:3001/meteor && meteor --port 4000

Nightwatch.js - Run shell script when tasks complete

With nightwatch.js is it possible to run other commands if all of my test pass?
I would like to be able to type a command that runs:
nightwatch
if tests pass shell script that updates repo to latest version
Actually could I use gulp to do this?
Thanks.

How can i run robot test cases without ride using test suite

I am new to robot framework and wanted to see if i can run test cases without RIDE. I want to create test suite and run test cases sequentially without using RIDE. I went through documentation but could not understand it.
Ex: Test Suite
Test Case 1
Test Case 2
Test Case 3
i would like to put my references to all my resource files to test suite and run all test cases. I can do this using RIDE but wanted to know if i can do this without using it. Do i need to create batch file to do this or any other method to run? Any example will help me. Thank you for advance.
When you install robot, you also installed a program called robot (or pybot in older versions), which is the official robot test runner.
If you have a test suite named "my_tests.robot", you can open up a command prompt (bash on *nix, powershell or command.exe on windows) and type the following command (assuming that robot is in your PATH environment variable, which it probably is):
$ robot my_tests.robot
If you have a collection of suites in a folder, you can give pybot the name of the folder rather than the name of a test file.
To see a list of all robot command line options, use the --help option:
$ robot --help
For more information see Starting test execution in the robot framework users guide.
if you use sublime-text/bracket/Atom/Emacs/vim ... you also have some plug-in :
http://robotframework.org/#tools
Show the path of test suite
exmp: Location of my 'catiav6' test script_
cd C:\Users....\Desktop\catiav6
Run following command from cmd
For single test case:
pybot --test 'Name_of_single_test_case' 'Name_of_test_suite'
For all test cases:
pybot --test * 'Name_of_test_suite'

Resources