2013-10-30 21 views
12

Tôi có một dòng lệnh Ubuntu 11.04 (GNU/Linux 2.6.35.4-rscloud x86_64) và tôi đang làm việc thông qua Angular Phonecat tutorial sử dụng Karma để thử nghiệm. Karma browser config page cho biết trình chạy Chrome được "giao hàng với Karma theo mặc định".Cách để Karma hoạt động với Chrome

Nhưng nó không hoạt động đối với tôi. This is the karma.conf.js. Dưới đây là đầu ra.

$ ./scripts/test.sh 

Starting Karma Server (http://karma-runner.github.io) 
------------------------------------------------------------------- 
INFO [karma]: Karma v0.10.4 server started at http://localhost:9876/ 
INFO [launcher]: Starting browser Chrome 
ERROR [launcher]: Cannot start Chrome 
     Can not find the binary google-chrome 
     Please set env variable CHROME_BIN 

This answer chỉ ra rằng tôi cần crôm.

Vì vậy, tôi đã cố gắng cài đặt Chrome trên Ubuntu bằng this guide với "tải xuống phiên bản 64 bit bằng dòng lệnh". Mọi thứ diễn ra tốt đẹp cho đến sudo apt-get -f install, kết thúc bằng rất nhiều "không tìm nạp được" từ địa chỉ IP ubuntu, chẳng hạn như 91.189.91.15 hoặc 91.189.92. . Ngay cả với/usr/bin/google điều gì đó * rằng "Không thể tìm thấy nhị phân google-chrome" biến mất, tôi vẫn nhận được "Không thể khởi động Chrome" ở cấp độ thử nghiệm cá nhân. Sau đó, trong khi cố sửa lỗi, tôi đã xóa/usr/bin/google một cái gì đó.

Hiện nay, tôi có những node_modules:

angular-phonecat/node_modules$ ls 
karma      karma-html2js-preprocessor karma-requirejs 
karma-chrome-launcher  karma-jasmine    karma-script-launcher 
karma-coffee-preprocessor karma-junit-reporter 
karma-firefox-launcher  karma-phantomjs-launcher 

Q 1: Kể từ khi máy của tôi chỉ có quyền truy cập dòng lệnh, không có giao diện đồ họa, là Karma launcher khác, PhantomJS, một sự lựa chọn tốt hơn so với Chrome/Chromium ?

Q 2: Nếu tôi vẫn nên sử dụng Chrome/Chromium, tôi có nên tải xuống Chrome hoặc Chromium không?

Q 3: Có ai biết chính xác những gì tôi cần để có được google-chrome hoặc chromium cho Karma để làm việc trong ứng dụng Góc?

Trả lời

9
  1. Nếu bạn chỉ có giao diện dòng lệnh, PhantomJS là lựa chọn duy nhất cho bạn.
  2. Trong linux (ít nhất là 12.04 và chuyển tiếp) chromium là giải pháp thay thế. Nhưng bạn không thể cài đặt nó nếu bạn không có ui đồ họa.
  3. Đầu mối ở đây: "Vui lòng đặt biến env CHROME_BIN". Karma cố thực thi một tệp có tên là google-chrome và nó không tồn tại. Tên của tệp thực thi cho chrome thay đổi từ OS sang OS. Do đó, bạn cần đặt một biến môi trường có tên CHROME_BIN có giá trị tên của tệp thực thi chrome của bạn. Trên hệ thống của tôi (máy tính để bàn Linux 13.10), đây là chromium-browser.
-1

Bạn đã thử chạy thử nghiệm từ đầu đến cuối? Tôi đang chạy Linux với dòng lệnh chỉ trên VPS của tôi vì vậy tôi đã sử dụng thử nghiệm e2e và nó hoạt động khá ok.

22

tôi sẽ mở rộng ở điểm thứ ba Ludwig cho người tìm câu trả lời và để tham khảo riêng của tôi trong tương lai ...

Điều đầu tiên bạn cần làm là tìm nơi chromium-browser được cài đặt.Chạy:

which chromium-browser 

này sẽ trở lại đường dẫn đến tập tin thực thi, nó sẽ giống như thế này:

/usr/bin/chromium-browser 

Sau đó chỉ cần thiết lập các đường dẫn:

export CHROME_BIN=/usr/bin/chromium-browser 

Bây giờ Karma có thể tìm thấy trình duyệt nó cần để thực hiện các thử nghiệm của bạn (giả sử bạn đã quyết định sử dụng một giao diện đồ họa).

+0

Tôi thấy câu trả lời của bạn dễ đọc hơn sau đó Ludwig: Tôi thích thực tế là tôi có thể sao chép-dán lệnh xuất (và nó chỉ hoạt động sau đó). Bạn có thể đi thêm một bước nữa và giải thích cách tự động tải lại biến xuất đó bằng cách sử dụng một .bashrc chẳng hạn. – nha

+1

Nếu bạn là một newbie để nghiệp (có lẽ là lý do tại sao bạn đang đọc này) nó rất hữu ích để biết rằng nghiệp với Chromium đòi hỏi một màn hình đồ họa. Nó thuận tiện giấu thông báo lỗi 'không thể mở hiển thị' sẽ cố gắng cho bạn biết rằng biến môi trường DISPLAY của bạn không được thiết lập để sử dụng một số máy chủ X Windows đang chạy. – nmgeek

1

Khi tôi thiết lập dự án với số the yeoman generator angular hôm nay, tôi không thể nhận được chrome hoặc ma ảo để làm việc với nghiệp vụ.

Nó chỉ ra đây là an issue specific to that project và sửa chữa chỉ đơn giản là thêm các plugin còn thiếu vào package.json trong gốc dự án của bạn.

Các vấn đề liên quan