安装Google js测试以进行单元测试

时间:2012-06-21 06:06:11

标签: javascript unit-testing v8

我目前正在研究JavaScript,并希望设计JavaScript的单元测试我正在使用google-JS-Test

http://code.google.com/p/google-js-test/

我已下载 gjstest-1.0.7

我已经安装了所有必备条件。

http://code.google.com/p/google-js-test/wiki/Installing#Prerequisites

但是当我使用

安装google js test时
$ cd gjstest-1.0.7 
$ make

我收到了以下错误

g++ -DHASH_NAMESPACE=__gnu_cxx -lrt -I. -I/usr/include/libxml2 -DDEFAULT_DATA_DIR=/usr/local/share/gjstest  -c -o gjstest/internal/cpp/v8_utils.o gjstest/internal/cpp/v8_utils.cc
gjstest/internal/cpp/v8_utils.cc:33: error: ‘v8::StackFrame’ has not been declared
gjstest/internal/cpp/v8_utils.cc:34: error: ‘v8::StackTrace’ has not been declared
gjstest/internal/cpp/v8_utils.cc: In function ‘void gjstest::ConvertToStringVector(const v8::Handle<v8::Value>&, std::vector<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::basic_string<char, std::char_traits<char>, std::allocator<char> > > >*)’:
gjstest/internal/cpp/v8_utils.cc:60: error: no matching function for call to ‘v8::Array::Get(uint32&)’
/usr/include/v8.h:1161: note: candidates are: v8::Local<v8::Value> v8::Object::Get(v8::Handle<v8::Value>)
make: *** [gjstest/internal/cpp/v8_utils.o] Error 1

似乎v8未正确安装

我使用

之类的命令安装了V8
sudo apt-get install libv8-2.0.3 
sudo apt-get install libv8-dbg 
sudo apt-get install libv8-dev 

还可以下载

svn checkout http://v8.googlecode.com/svn/trunk/ v8
cd v8
make dependencies
scons

但仍然遇到这些错误

因此,如果任何人安装并使用了Google Js或安装了v8,请指导我如何解决此问题。

我正在使用Ubuntu 10.04。 任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:1)

这确实是因为尝试针对非常旧版本的libv8构建gjstest。

我按照here的说明检查并在ubuntu 10.04上构建了一个更新的libv8:

svn checkout http://v8.googlecode.com/svn/trunk/ v8
cd v8
make depdendencies
make native library=shared
cp out/native/lib.target/libv8.so /usr/local/lib/libv8.so
cp include/v8.h /usr/local/include/v8.h
cp include/v8stdint.h /usr/local/include/v8stdint.h

之后gjstest编译并运行没有进一步的意外。