2013-05-09 14 views
6

Próbuję przetestować stażystę, aby sprawdzić, czy jest on odpowiedni dla szkieletu testowego. Próbuję przetestować następujący kod w Intern.Nie można pobrać programu Intern do uruchomienia modułu Node.js

var HelloWorld; 

HelloWorld = (function() { 

    function HelloWorld (name) { 
    this.name = name || "N/A"; 
    } 

    HelloWorld.prototype.printHello = function() { 
    console.log('Hello, ' + this.name); 
    }; 

    HelloWorld.prototype.changeName = function(name) { 
    if (name === null || name === undefined) { 
     throw new Error('Name is required'); 
    } 
    this.name = name; 
    }; 

    return HelloWorld; 

})(); 

exports = module.exports = HelloWorld; 

Plik znajduje się w 'js-test-projekty/node/lib/HelloWorld.js' i znajduje się w Intern 'js-test-projects/stażysta'. Używam gałęzi 1.0.0 Intern. Ilekroć próbuję dołączyć plik i uruchomić test, nie otrzymuję żadnych danych wyjściowych po "Defaulting to console reporter". Oto plik testowy.

define([ 
    'intern!tdd', 
    'intern/chai!assert', 
    'dojo/node!../lib/HelloWorld' 
], function (tdd, assert, HelloWorld) { 
    console.log(HelloWorld); 
}); 
+1

Dla kogoś nie znającego węzła. js, to brzmiało jak wysyłanie stażystów :) –

+1

Nienawidzę, gdy nie mogę zmusić stażystki do uruchomienia tego, czego chcę. – AaronLS

Odpowiedz

7

1. Zakładając następującą strukturę katalogów (w oparciu o pytaniu):

js-test-projects/ 
    node/ 
     lib/ 
      HelloWorld.js - `HelloWorld` Node module 
     tests/ 
      HelloWorld.js - Tests for `HelloWorld` 
      intern.js  - Intern configuration file 
    intern/ 

2. Plik konfiguracyjny Stażysta powinien zawierać informacje na opakowaniu node oraz wszelkich apartamentów do uruchomienia:

// ... 

// Configuration options for the module loader 
loader: { 
    // Packages that should be registered with the loader in each testing environment 
    packages: [ 'node' ] 
}, 

// Non-functional test suite(s) to run 
suites: [ 'node/tests/HelloWorld' ] 

// ... 

3. plik Test s Obciążenie hould HelloWorld użyciu wersji stażysta Dojo, tak:

define([ 
    'intern!tdd', 
    'intern/chai!assert', 
    'intern/dojo/node!./node/lib/HelloWorld.js' 
], function (tdd, assert, HelloWorld) { 
    console.log(HelloWorld); 
}); 

Uwaga: Robisz nie mieć używać wersji stażysta Dojo załadować moduł HelloWorld węzła w tym teście AMD, jest tylko wygodny sposób na zrobienie tego. Jeśli masz inną wtyczkę AMD, węzeł - wymaga modułu węzła, to jest w porządku.

4. Na koniec, aby uruchomić testy w środowisku node.js, użyj stażysta client.js węzła biegacza wydając następującą komendę w katalogu intern:

node client.js config=node/tests/intern 
+2

Zauważ, że jeśli twój moduł węzłowy znajduje się już w rozpoznawalnym katalogu 'node_modules', to po prostu użyjesz' intern/dojo/node! Node/lib/HelloWorld'. –

Powiązane problemy