2013-03-19 2 views
3

Я пытаюсь написать несколько простых тестов на JS-код, который можно запустить из командной строки, чтобы протестировать код, который не имеет ничего общего с HTML, документами или пользовательский интерфейс. Для этого мне нужно включить один файл в другой, чтобы вытащить тестируемый код в тестовый скрипт. Я нашел участие в работе HTML или DOM, чтобы выполнить эту работу; например, что-то вроде document.write() или некоторых таких. Есть ли простой способ сделать это? Я рисую что-то вроде include ("code2test.js"); Буду признателен за любую помощь в решении этого вопроса. Может ли JQuery помочь или он должен использоваться в контексте HTML/браузера?включает Javascript-файл в JS-файле без HTML или DOM в сценарии командной строки

Спасибо advance.j

+0

Что вы используете для запуска тестов? –

ответ

1

Похоже, вам просто нужно два сценария теги:

<script type="text/javascript" src="code2test.js"></script> 
<script type="text/javascript" src="testscript.js"></script> 

Если это не сработает, попробуйте изменить порядок.

+0

Я думаю, он спрашивает, как включить javascript на веб-страницу ПОСЛЕ загрузки в командной строке, а не как включить его в html. – kennypu

+0

Нет, он говорит о запуске javascript из командной строки, а не на веб-странице вообще. –

+0

В этом случае вам нужно добавить скрипт в документ: 'document.getElementByTagName (« head ») [0] .appendChild (document.createElement (« script »)). Src =« code2test.js »;' – ic3b3rg

0

Если вы просто хотите доступ к JavaScript двигателя (например, Webkit) без использования браузера, вы можете использовать что-то вроде nodeJS или PhantomJS

1

Похоже, что вам нужно, это Require.js. Он предназначен для включения javascript в веб-страницу с использованием javascript, а не тегов скриптов. Например, вместо:

<script scr="foo.js"></script> 
<script> 
    use_foo_here(); 
</script> 

с помощью Require.js вы можете написать:

require(["foo.js"],function(foo){ 
    use_foo_here(); 
}) 

Прохладная вещь о Require.js том, что она может использоваться даже на Node.js. Поэтому для вызова командной строки вы можете использовать Node для запуска ваших скриптов, а операторы require() будут работать так же, как на веб-странице.

0

Мы используем Chutzpah в качестве нашего тестового бегуна и очень довольны им. Мы пишем тесты, используя Jasmine. Жасмин не требует DOM.

В начале тестового файла, ссылки на файлы JavaScript испытываемого добавлены, как это:

/// <reference path="dependantModule.js" /> 
/// <reference path="code2test.js" /> 

, а затем тестовый код следующим образом:

describe("code2test test suite", function() { 

    it("should do something"", function() { 
     var result; 

     // Assuming code2test.js exposes a global called 'code2test' 
     result = code2test.doSomething(); 
     expect(result).toEqual("the expected result"); 
    }); 
}); 

Наглость использует PhantomJS без браузера. Поэтому вы можете писать тесты, которые взаимодействуют с DOM, если это необходимо.

Мы запускаем тесты через Chutzpah из командной строки для непрерывной интеграции, но также запускаем их внутри Visual Studio 2010 с использованием расширения Visual Studio Chutzpah. Я считаю, что интеграция Chutzpah в VS2012 еще проще, но сама не пробовала.

Тестирование также может выполняться внутри «реального» браузера, что отлично подходит для отладки. Моим браузером для отладки тестового кода является Chrome - инструменты разработчика отличные.

Смежные вопросы