Ich arbeite gerade an CasperJS und genieße es wirklich. Aber vielleicht ist es etwas, was ich in der Dokumentation verpasst habe, ich habe Probleme mit casper.capture(). Ich habe zur Zeit Mine zurechtgebastelt zu erfassen, wenn ein Test fehlschlägt, und legen Sie sie in einem separaten Setup-Modul wie untenCasperJS Screenshots von mehreren Screenshots: Der letzte Screenshot überschreibt alle vorherigen Bilder
function captureFailure(filename){
casper.test.on("fail", function(failure){
casper.viewport(1280, 1024);
casper.capture("failedScreenshots/Failure-"+filename+".jpg", {
top: 0,
left: 0,
width: 1280,
height: 1024
});
});
}
exports.captureFailure = captureFailure;
Diese wird dann wie so in meinen Tests setzen:
. . .
// setup
setup.login();
// test
casper.test.begin("Complete new social campaign flow with image as a signed in user.", 16, function suite(test) {
// setup captureFailure
setup.captureFailure("SocialFlowImage");
casper.start(data.baseURL+'/campaigns/', function(){
console.log("Campaign page loaded");
this.click(campaignCreate);
casper.waitForSelector(socialCampaignCreateModal, function(){
test.assertExists(socialCampaignCreateModal, 'Modal pops up');
test.assertTextExists('Deal', 'Deal button exists');
test.assertTextExists('Marketing Email', 'Marketing Email button exists');
test.assertTextExists('Facebook', 'Facebook button exists');
});
});
. . .
Für die Das meiste funktionierte alleine, aber als ich alle meine Tests im Tandem durchführte, um mehrere Fehler zu testen, wurden die Screenshots im Laufe der Zeit überschrieben. In chronologischer Reihenfolge sah es so etwas wie diese:
Test 1 -> Test 1 Ausfall -> Capture-Screenshot 1 -> Test 2 -> Test 2 Ausfall -> Capture-Screenshot 2 und anschließend Screenshot 1
überschreibtUnd das führte zu 2 der gleichen Screenshots aber unterschiedlicher Namenskonvention.
Irgendwelche Ideen?