2012-02-06 30 views
11

Im cố gắng để đăng nhập kiểm tra đầu ra của tôi vào một tập tin cũng như chạy chúng đồng thời. Đối với điều này Im đang cố gắng sử dụng plugin đa xử lý và plugin xunit.Mũi Python: Đăng nhập kiểm tra kết quả vào một tập tin với Multiprocess Plugin

Lưu ý rằng chúng không hoạt động cùng nhau, xunit không ghi nhật ký gì vì mutiprocess không gửi trực tiếp đầu ra.

https://github.com/nose-devs/nose/issues/2

gì Im tìm bất kỳ thay thế cho phép tôi viết ra đầu ra vào một tập tin. Lý do là vì Im chạy Thử nghiệm Selenium, và mỗi khi tôi gặp lỗi, stacktrace quá lớn khiến cho bản đồ cơ bản được điền đầy đủ. Điều gì đó làm giảm bớt cũng có thể giúp ích, tài liệu selenium khá khan hiếm về cách cấu hình đầu ra ghi nhật ký.

Tôi cũng đã thử một chuyển hướng khá cơ bản của thiết bị xuất chuẩn:

#nosetests > file.txt 

Nhưng đó doesnt làm việc một trong hai.

Trả lời

14

Nếu bạn muốn sử dụng chuyển hướng cơ bản từ vỏ bạn có thể làm

nosetests &> output.txt 

Nhưng dựa trên câu hỏi của bạn có vẻ như bạn muốn làm một cái gì đó như:

$nosetests --processes 4 --with-xunit --xunit-file=test_output.xml 

Full dụ :

$ls 
test_nose.py test_nose.pyc 

$cat test_nose.py 

import sys 
import os 
import time 

def setUp(): 
    pass 

def test_1(): 
    time.sleep(5) 
    with open('test_pid_' + str(os.getpid()), 'w') as f: 
     f.write(str(os.getpid()) + '\n') 

def test_2(): 
    time.sleep(5) 
    with open('test_pid_' + str(os.getpid()), 'w') as f: 
     f.write(str(os.getpid()) + '\n') 

def test_3(): 
    time.sleep(5) 
    with open('test_pid_' + str(os.getpid()), 'w') as f: 
     f.write(str(os.getpid()) + '\n') 

def test_4(): 
    time.sleep(5) 
    with open('test_pid_' + str(os.getpid()), 'w') as f: 
     f.write(str(os.getpid()) + '\n') 

def tearDown(): 
    pass 

$ nosetests --processes 4 --with-xunit --xunit-file=test_output.xml 
.... 
---------------------------------------------------------------------- 
Ran 4 tests in 5.223s 

OK 

$ ls 
test_nose.py test_output.xml test_pid_55247 test_pid_55249 
test_nose.pyc test_pid_55246 test_pid_55248 

$ cat test_pid* 
55246 
55247 
55248 
55249 

$ xmllint -format test_output.xml 
<?xml version="1.0" encoding="UTF-8"?> 
<testsuite name="nosetests" tests="0" errors="0" failures="0" skip="0"/> 

Có vẻ như nó không hoạt động như bạn nói :)

Nhưng

$nosetests --processes 4 &> output.txt 

$nosetests --with-xunit --xunit-file=test_output.xml 

Do.

Tài liệu tham khảo:

Redirect stderr and stdout in a Bash script

$man xmllint 

$nosetests -h 
+0

Cảm ơn rất nhiều, nó hoạt động một cách hoàn hảo! – dgrandes

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