Giter Club home page Giter Club logo

infinitest's Introduction

Notes for new developers

We strongly believe in Test-Driven Development.

Get the source

Fork the project source code on github:

git clone git://github.com/infinitest/infinitest.git

You can pull only a shallow clone by specifying the number of commits you want with --depth:

git clone git://github.com/infinitest/infinitest.git --depth 10

Build

You need Maven. To run a reactor build in the repository root:

mvn clean install

This will compile, test and package all modules of the project in a single operation.

Finding your way around

infinitest-lib and infinitest-runner are included in every plugin. infinitest-intellij is the IntelliJ plugin, while infinitest-eclipse is the eclipse plugin.

testWorkspace is a collection of sample projects that we use for exploratory testing. If you find something in the wild that makes Infinitest break, it's a good idea to reproduce it in testWorkspace, fix it, and then try it again to be sure you've really fixed it.

Publishing a release

When you finish something, release it. Also, make sure you don't push anything to github that's not in a releasable state. It's OK to temporarily disable stuff...just make sure that work in progress isn't breaking anything else.

The release.sh script will build a new version of the plugin, incrementing the version number, and copy it to the server hosting the update site. This copy will fail if Ben hasn't added your public ssh key to the server (See above). We like developers to publish a release after implementing every feature.

Running release.sh copies the plugin to the experimental update site. It's suggested that you publish and then test the plugin before promoting it to the main update site. You do this using the promote.sh script.

Open Infinitest in Eclipse

First, tell maven to generate eclipse project files (.project and .classpath):

mvn eclipse:eclipse

Right-click in the Eclipse Package Explorer -> Import -> Existing Projects info Workspace -> Choose the root of your infinitest-repository -> Your maven-built-projects are displayed -> DON'T copy into workspace -> Finish. The "Eclipse Application" Runtime Configuration in eclipse allows you to fire up another Eclipse instance with the Infinitest plugin loaded into it. You can also debug this instance (which can be a very effective way to explore what the Eclipse SDK actually does):

Running and Debugging Infinitest in Eclipse

mvn eclipse:eclipse install -Dmaven.test.skip=true

Right-click plugin.xml -> Open With -> Plug-in Manifest Editor Tab Overview -> Launch/Debug an Eclipse application

Keep in mind that while you can use Infinitest to test Infinitest, some weird things happen when you change anything in the infinitest-runner project, because that project is actually used to run the tests, so any changes you make may conflict with the classes in whatever version of the plugin you have installed. As a result, we try to keep infinitest-runner as thin as we can get it.

License

Infinitest is distributed under MIT License.

Want to participate?

You might want to read this

Credits

Yourkit is kindly supporting Infinitest open source project with its full-featured Java Profiler.

infinitest's People

Contributors

athieriot avatar benrady avatar darraghotoole avatar dgageot avatar dharkness avatar drbald72 avatar evantill avatar godin avatar kingbuzzer avatar maciulis avatar manandbytes avatar matthiasdroste avatar palpa avatar ptitfred avatar pyricau avatar rusio avatar sarod avatar szpak avatar twillouer avatar xavierbourguignon avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.