Code Monkey home page Code Monkey logo

Comments (8)

trentmwillis avatar trentmwillis commented on May 22, 2024

I don't have much familiarity with Circle. The number of nodes available to run your tests is variable per-run?

If so, I would recommend parallelizing within a given node instead of across the variable number of nodes. It will give you more consistent results and make debugging easier (less environmental variables).

from ember-exam.

Frozenfire92 avatar Frozenfire92 commented on May 22, 2024

I'm not super familiar with it either, but this is my understanding.

You pay for containers, and all of your projects share these. If one is used it waits until another opens up. You can set it on a per repo(project) setting to use more if available. I only have 2 containers available, if a different project uses one (and is only provisioned one) then my ember project only has one available and this will happen (I think)

I found this blog post so hopefully someone else will run into this with circle who is more familiar

If so, I would recommend parallelizing within a given node instead of across the variable number of nodes. It will give you more consistent results and make debugging easier (less environmental variables).

How would I go about this?

from ember-exam.

Frozenfire92 avatar Frozenfire92 commented on May 22, 2024

After working with the author of that blog post we confirmed that it is indeed working (once I switched to 2 containers for my project) and it is splitting the tests up correctly. To check this open the Artifacts tab in circle and click on the xml files to verify they are running different tests

image

However the issue still arises, I think if split does get passed 1, it should just run it as if it wasn't split rather than failing the tests

from ember-exam.

trentmwillis avatar trentmwillis commented on May 22, 2024

I think if split does get passed 1, it should just run it as if it wasn't split rather than failing the tests

I suppose I can relax this to just be a warning. The intent was to make sure developers know when they're actually splitting/reducing the number of tests being run, but an exception may be a bit too disruptive.

How would I go about this?

Use the --parallel option. In general I recommend this over trying to use multiple node/boxes/processes as it is overall less resource intensive.

from ember-exam.

 avatar commented on May 22, 2024

@Frozenfire92 we haven't had any issues using exam on Circle. Here's our circle.yml:

general:
  branches:
    only:
      - master 
      - /.*_ci$/
machine:
  node:
    version: 4.7.0
dependencies:
  cache_directories:
    - "/opt/circleci/nodejs/v4.7.0/lib/node_modules"
    - "/opt/circleci/nodejs/v4.7.0/bin"
    - "node_modules"
    - "bower_components"
  pre:
    - type ember || npm -g install ember-cli
    - type bower || npm -g install bower
  override:
    - npm install
    - bower install
test:
  override:
    - mkdir -p $CIRCLE_TEST_REPORTS/ember:
        parallel: true
    - node_modules/ember-cli/bin/ember exam ci --split=$CIRCLE_NODE_TOTAL --partition=$((CIRCLE_NODE_INDEX+1)) --reporter xunit --silent > $CIRCLE_TEST_REPORTS/ember/junit$CIRCLE_NODE_INDEX.xml:
        parallel: true
        timeout: 1200

from ember-exam.

 avatar commented on May 22, 2024

Ah you're saying the error message is unhelpful? I think it's fine, as you'd configure the circle.yml per project, and you'd add containers per project anyway based on your Circle plan?

Basically in the case of single containers you'd just use ember test ci anyway?

from ember-exam.

dwickern avatar dwickern commented on May 22, 2024

👍 to make this a warning, so that we can do e.g.
ember exam --parallel --split=$NUMBER_OF_PROCESSORS
without extra conditional logic

from ember-exam.

trentmwillis avatar trentmwillis commented on May 22, 2024

This has been changed in 0.6.2.

from ember-exam.

Related Issues (20)

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.